Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/22: Рейтинг темы: голосов - 22, средняя оценка - 4.91
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647

Расположение элементов в ячейке таблицы GridBagLayout

04.06.2015, 12:43. Показов 4975. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите , непонимаю почему , меня неслушается менеджер расмещения хочу подвинуть наверх таблицу в самый верх она при полном экране сползает, неподскажите в чём дело?


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
JFrame mainwindow = new JFrame("Пробное окно");
mainwindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagConstraints c = new GridBagConstraints();
mainwindow.setLayout(new GridBagLayout());
mainwindow.setLocation(0,0);
mainwindow.pack();
mainwindow.setVisible(true);
JPanel mypanel = new JPanel();
JTable table = new JTable(data, columnNames);
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
table.addMouseListener(new Newaction());
JScrollPane scrollPane = new JScrollPane(table);
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.NORTH;
 c.weightx = 1;
c.gridwidth=2;
c.gridx = 0;
c.gridy = 0;
mainwindow.getContentPane().add(scrollPane,c);
 
JButton buttom= new JButton("Button 2");
c.gridx = 0;
c.gridy = 1;
 c.anchor = GridBagConstraints.SOUTH;
 c.gridwidth = 1;
 
c.fill=GridBagConstraints.VERTICAL ;
 
mainwindow.getContentPane().add(buttom, c);
 
JButton buttom1= new JButton("Кнопка выбора 1");
c.anchor = GridBagConstraints.NORTH;
c.gridx = 1;
c.gridy = 1;
c.fill=GridBagConstraints.VERTICAL ;
 
 c.gridwidth = 1;
 
 
 
 
mainwindow.getContentPane().add(buttom1 ,c);
 
mainwindow.pack();
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2015, 12:43
Ответы с готовыми решениями:

Расположение компонентов. Менеджера компоновки GridBagLayout
Хочу основательно разобраться с таким новым для меня понятием как менеджер компоновки. Пока читаю всяческую литературу - всё понятно. Чтобы...

Расположение текста в ячейке таблицы
<table border="1" class="main" style="height: 100%; width: 100%"> <tbody> <tr> <td class="news" style="width: 30%;...

Расположение картинок в ячейке таблицы
Здравствуйте, как расположить картинки таким образом, который изображен на данном скриншоте в первой ячейке? Это 4 разных картинки. ...

30
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
20.07.2015, 09:56
Студворк — интернет-сервис помощи студентам
Очевидно, чтобы задать столбец с минимально возможным значением веса.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
22.07.2015, 01:59  [ТС]
aleksandy,я пробую разобраться сам , какой параметр за что отвечает ,и сколько нужно значений в массиве параметра columnWeights понимание я просмотрел множества примеров ,но каких то зацепок ненашёл.

Добавлено через 2 часа 1 минуту
aleksandy, мог бы я вас спросить , метод columnWeights это количество строк или ячеек.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
23.07.2015, 02:21  [ТС]
aleksandy, я никак не могу понять почему в этом примере
columnWeights 7 значений массива , а почему тогда самих ячеек 8.
Я всё ешё не понимаю что означает метод columnWeights

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package inter1;
 
 
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
 
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
 
public class  Inter1 extends JFrame {
    private JTextField search= new JTextField();
    private JList listView = new JList();
 
    public  Inter1() {
        GridBagLayout gridBagLayout = new GridBagLayout();
       
        gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 1.0, 0.0, Double.MIN_VALUE};
        gridBagLayout.rowWeights = new double[]{0.0, 1.0, 0.0, Double.MIN_VALUE};
        
        
                
        
        setLayout(gridBagLayout);
 
        JPanel infoPanel = new JPanel();
        infoPanel.setBorder(BorderFactory.createTitledBorder("Информация"));
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridheight = 2;
        gbc.gridwidth = 4;
        gbc.insets = new Insets(0, 0, 5, 5);
        gbc.fill = GridBagConstraints.BOTH;
        gbc.gridx = 0;
        gbc.gridy = 0;
        add(infoPanel, gbc);
 
        gbc.gridheight = 1;
        gbc.gridwidth = 1;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.gridx = 4;
        gbc.gridy = 0;
        add(this.search, gbc);
 
        JButton button = new JButton("find");
        gbc.gridx = 5;
        gbc.gridy = 0;
        add(button, gbc);
 
        
 
        button = new JButton("1");
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        gbc.insets = new Insets(0, 0, 0, 5);
        gbc.gridx = 0;
        gbc.gridy = 2;
        add(button, gbc);
 
        button = new JButton("2");
        gbc.gridx = 1;
        add(button, gbc);
 
        button = new JButton("3");
        gbc.gridx = 2;
        add(button, gbc);
 
        button = new JButton("4");
        gbc.gridx = 3;
        add(button, gbc);
        
        
        JScrollPane scrollPane = new JScrollPane(this.listView);
        gbc.gridwidth = 2;
        gbc.gridheight = 2;
        gbc.fill = GridBagConstraints.BOTH;
        gbc.gridx = 4;
        gbc.gridy = 1;
        add(scrollPane, gbc);
    }
 
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
 
            @Override
            public void run() {
                 Inter1 f = new  Inter1();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setLocationRelativeTo(null);
                f.pack();
                f.setVisible(true);
            }
 
        });
    }
}
    
}
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
25.07.2015, 14:38  [ТС]
aleksandy, Скажите , я не совсем понимаю , что происходит если вписать в массив значений число 0.0 , это значит , что столбец не растягивается?

Добавлено через 1 час 7 минут
Как высчитываются эти числа в, каком соотношении от чего?
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
29.07.2015, 08:56
Раз с официальной докой, в которой всё описано подробно что к чему, и ссылки на которую я приводил не однократно, у тебя проблемы, читай тут.

Для наглядности попробуй плагин WindowsBuilder для Eclipse, это визуальный редактор, который умеет генерить вполне читабельный для новичка код и, что немаловажно, понимать рукописный. Поизменяй код, посмотри как изменения влияют на результат.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
29.07.2015, 20:23  [ТС]
aleksandy, спасибо за ответ вот нашёл приемлемый вариант
http://spec-zone.ru/RU/Java/Do... ayout.html
причём совершенно случайно всё таки не всегда так просто в интернете можно чего либо найти.
Экспериментирую , но вот одно но , что значит вес столбца, как это можно понимать.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
30.07.2015, 08:42
Цитата Сообщение от saladdd Посмотреть сообщение
что значит вес столбца, как это можно понимать.
Грубо говоря, процентное соотношение его ширины ко всей доступной.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
31.07.2015, 23:38  [ТС]
тоесть если стоит значение 1 это значит один процент от чего , я не совсем взъезжаю от всей доступной , кстате вся доступная это 100% размер экрана или окна приложения.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
01.08.2015, 07:25
1.0 - это 100%, значения должны назодиться в диапазоне от 0.0 до 1.0

100% - это вся ширина контейнера, которому установлен layout.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 647
02.08.2015, 20:37  [ТС]
aleksandy,
Вот всё разобрался методом научного тыка правда уж слишком мало по
Java
1
rowWeights
документации , много предстоит выяснить.Я правильно понимаю , что если строка содержит элемент например jtable который не растягивается на весь экран
Java
1
rowWeights = new double[]{0.0,1.0};
то изменяя значение в переопределении 2ой строки с 0.0 на 1.0 можно растянуть таблицу на всю ширину.
Вопрос в том < что мешает таблице растянуться на весь экран , без этого , а что происходит когда я ввожу значение строки 1 это просто даёт ей более значительный вес , что имеется ввиду под словом вес - максимальная ширина?



Почему когда первой строке в моём примере мы ставим 1 таблица съезжает вниз , это из-за чего , почему строка меняет размеры по ширине? в данном случае , как будто появляются отступы как в html.

Да и значение элемента weightx, без него ничего не работает.
Java
1
c.weightx=2;
меня немного смущает значение 2 чего?

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package jtable;
 
import java.awt.event.ActionEvent;
import java.awt.*;
import javax.swing.*;
/**
 *
 * @author user
 */
public class Jtable {
 
    
     public static void main(final String[] args) {
    JFrame mainwindow = new JFrame("Пробное окно");
    mainwindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 GridBagLayout lout = new GridBagLayout();
 
 
    lout.rowWeights = new double[]{0.0,1.0};
         
 mainwindow.setLayout(lout);
 
 String[] columnNames = {
     "Name",
     "Last modified",
     
}; String[][] data = {
     {"addins", "02.11.2006 19:15", "Folder", ""},
     {"AppPatch", "03.10.2006 14:10", "Folder", ""},
     {"assembly", "02.11.2006 14:20", "Folder", ""},
     {"Boot", "13.10.2007 10:46", "Folder", ""},
     {"Branding", "13.10.2007 12:10", "Folder", ""},
     {"Cursors", "23.09.2006 16:34", "Folder", ""},
     {"Debug", "07.12.2006 17:45", "Folder", ""},
     {"Fonts", "03.10.2006 14:08", "Folder", ""},
     {"Help", "08.11.2006 18:23", "Folder", ""},
     {"explorer.exe", "18.10.2006 14:13", "File", "2,93MB"},
     {"helppane.exe", "22.08.2006 11:39", "File", "4,58MB"},
     {"twunk.exe", "19.08.2007 10:37", "File", "1,08MB"},
     {"nsreg.exe", "07.08.2007 11:14", "File", "2,10MB"},
     {"explorer.exe", "18.10.2006 14:13", "File", "2,93MB"},
     {"helppane.exe", "22.08.2006 11:39", "File", "4,58MB"},
     {"twunk.exe", "19.08.2007 10:37", "File", "1,08MB"},
     {"nsreg.exe", "07.08.2007 11:14", "File", "2,10MB"},
     {"explorer.exe", "18.10.2006 14:13", "File", "2,93MB"},
     
}; 
      
         
    Font font = new Font("Verdana", Font.PLAIN, 11);
    JMenuBar menuBar = new JMenuBar();
    JMenu fileMenu = new JMenu("File");
    fileMenu.setFont(font);
    JMenuItem openItem = new JMenuItem("Open");
    openItem.setFont(font);
    fileMenu.add(openItem);
         
    JMenuItem closeItem = new JMenuItem("Close");
    closeItem.setFont(font);
    fileMenu.add(closeItem);
         
    JMenuItem closeAllItem = new JMenuItem("Close all");
    closeAllItem.setFont(font);
    fileMenu.add(closeAllItem);
         
    fileMenu.addSeparator();
         
    JMenuItem exitItem = new JMenuItem("Exit");
    exitItem.setFont(font);
    fileMenu.add(exitItem);
         
    menuBar.add(fileMenu);
    GridBagConstraints c = new GridBagConstraints();
    c.anchor = GridBagConstraints.NORTH;
    c.fill = GridBagConstraints.HORIZONTAL;
  c.weightx=2;
     
    
   c.ipady = 0;
    c.gridx = 0;
    c.gridy = 0;
   
    c.insets = new Insets(0,0,0,0);
     
     mainwindow.add(menuBar, c);      
     
     
    JTable table = new JTable(data, columnNames);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
    c = new GridBagConstraints();
   
   
    c.anchor = GridBagConstraints.NORTH;
      c.fill = GridBagConstraints.BOTH;
    c.ipady = 0;
    c.gridx = 0;
    c.gridy = 1;
   
    
    c.insets = new Insets(0,0,0,0);
    mainwindow.add(new JScrollPane(table), c);
    mainwindow.pack();
    mainwindow.setVisible(true);
}}
Добавлено через 21 час 45 минут
aleksandy, а не вкурсе , что-то подобное для Netbeans есть.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
02.08.2015, 21:39
Я свинг ковырял давным-давно, поэтому ответить тебе не могу. Если интересуют такие подробности, то лучше изучай исходный код, там 146% можно найти ответы на все вопросы. Да и вообще этот layout не очень-то и полезен. Вместо него я пользовался FormLayout-ом. Он намного проще.

Цитата Сообщение от saladdd Посмотреть сообщение
aleksandy, а не вкурсе , что-то подобное для Netbeans есть.
Подобное чему? WindowsBuilder? Вряд ли. Даже в во всеми превозносимой идее такого нет. По крайней мере, в комьюнити версии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.08.2015, 21:39

Расположение компонентов c GridBagLayout менеджером
Пожалуйста подскажите :cry:, как настроить расположение компонентов на панели с менеджером GridBagLayout. Лейбл с Текстом должен быть по...

Swing-приложение (расположение компонентов, GridBagLayout)
Помогите, пожалуйста, разобраться почему некорректно отображаются компоненты (картинки во вложении)? Размеры текстовых полей заданы,...

Размещение в ячейке GridBagLayout кнопок объединённых в группу
Здравствуйте , интересует ,как в ячейку менеджера размещения GridBagLayout поставить группу кнопок JToggleButton tButton1 = new...

Выравнивание элементов в ячейке таблицы
Здравствуйте. Подскажите как выровнять ссылки относительно таблицы. Код HTML: &lt;div class=&quot;catalog&quot;&gt; &lt;table...

В одной ячейке таблицы несколько повторяющихся элементов
Добрый день. Прошу помощи в виде совета, а не просьбы написать вместо меня. Учусь работать с VK API и решил вывести посты со стены юзера....


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
28. КОнкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru