Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java GUI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
RequiemMass
91 / 91 / 18
Регистрация: 06.01.2012
Сообщений: 394
1

GridBagLayout в JDialog. Illegal anchor value на setVisible(true);

31.10.2013, 15:31. Просмотров 590. Ответов 3
Метки нет (Все метки)

Должно быть как на картинке. Использую JDialog и GridBagConstraints.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
 * @method показывает окно вида         
           |текст
 * картинка|текст
 * ComboBox\TextField 
 *       okBtn
 * @param owner - фрейм над которым отображается окно м.б null
 * @param titul наименование окна
 * @param modal модальность окна
 * @param text массив строк текста
 * @param cmp компонент JTextField или ComboBox
 * @param image картинка
     */
public String showPictureDialog(JFrame owner,String titul,boolean modal,String[] text,Component cmp,ImageIcon image)
    {
        dialog = new JDialog(owner,titul,modal);
        
        dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        dialog.setLayout(new BorderLayout());
        
        GridBagLayout layout = new GridBagLayout();
        JPanel content = new JPanel(layout);
        
        JPanel textPanel = new JPanel();
        textPanel.setLayout(new BoxLayout(textPanel,BoxLayout.X_AXIS));
       
       if (cmp instanceof JTextField) //Добавляем TextField
        {
            field = new JTextField(20);
            field.getDocument().addDocumentListener(new CheckFieldListener());
            content.add(field,new GridBagConstraints(0,1,2,1,0,1,GridBagConstraints.NONE,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
 
        }
       if (cmp instanceof JList) //Добавляем Jlist
        {
            list = (JList)cmp;
            list.addListSelectionListener(new ListListener());
             content.add(field,new GridBagConstraints(0,1,2,1,0,1,GridBagConstraints.NONE,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            list.setLayoutOrientation(JList.VERTICAL);
            list.setVisibleRowCount(-1);
            content.add(list);
        }
      
        int maxDlinaStroki=0;
        String aStr;
        for (int i=0;i<text.length;i++) //Добавляем текст
        {
            aStr=text[i];
            if (maxDlinaStroki<aStr.length())
                maxDlinaStroki=aStr.length();
            textPanel.add(new JLabel(aStr));
        }
        
        content.add(new JLabel(image),new GridBagConstraints(0,0,1,1,2,8,GridBagConstraints.NONE,GridBagConstraints.BOTH,new Insets(5,5,5,5),0,0));
        ok.setEnabled(false);
        ok.addActionListener(new ActionListener()
                {
                    public void actionPerformed(ActionEvent event)
                    {
                       dialog.setVisible(false);
                       if (list!=null) {
                           result=(String)list.getSelectedValue();
                       }
                       else if (field!= null){
                           result=field.getText();
                       }
                    }
                });
        
        content.add(ok,new GridBagConstraints(0,2,2,1,0,1,GridBagConstraints.NONE,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
        content.add(textPanel, new GridBagConstraints(1,0,1,1,1,8,GridBagConstraints.NONE,GridBagConstraints.BOTH,new Insets(5,5,5,5),0,0 ));
        dialog.add(content,BorderLayout.CENTER);
        dialog.setVisible(true);
        return result;}
0
Миниатюры
GridBagLayout в JDialog. Illegal anchor value на setVisible(true);  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 15:31
Ответы с готовыми решениями:

QProgressBar->setVisible(true); Не срабатывает в функции
Имеется QProgressBar. Задумал так: при запуске функции QProgressBar...

Свойства контрола webbrowser: addressbar:true, statusbar:true, menubar:true
Я чайник, конечно, но... решил и я свой броузер написать :) Беру контрол...

QDialog setVisible прерывает exec?
Добрый вечер форумчане! Столкнулся с такой проблемой - имеется диалог в нем...

JFrame + Jdialog
Имеется JFrame и JDialog. При нажатии определенной кнопки в JDialog, должна...

Button и JDialog
При нажатии на кнопку отображается диалоговое окно, но кнопка на которую...

3
Skipy
1996 / 1419 / 91
Регистрация: 25.11.2010
Сообщений: 3,611
31.10.2013, 17:12 2
anchor не может быть GridBagConstraints.NONE. Нельзя привязать компонент "никуда". Можно в 8 направлений либо в центре. Поставьте GridBagConstraints.CENTER.
1
RequiemMass
91 / 91 / 18
Регистрация: 06.01.2012
Сообщений: 394
31.10.2013, 18:00  [ТС] 3
Skipy, перепутал местами
0
Skipy
1996 / 1419 / 91
Регистрация: 25.11.2010
Сообщений: 3,611
01.11.2013, 10:18 4
Цитата Сообщение от RequiemMass Посмотреть сообщение
Skipy, перепутал местами
Бывает. Я вчера тестовый пример писал, то же самое сделал, получил ту же самую ошибку. Скорость работы автодополнения обогнала мозг.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 10:18

JDialog не отображается
Код не работает именно в netbeans. Файл: myDialog.java // ... // ......

GridBagLayout
Почему, когда я добавляю элементы с помощью GridBagLayout они остаются в центре...

GridBagLayout
Помогите пожалуйста разобраться с расположением компонентов. Хочу, чтобы всё...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru