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

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

04.06.2015, 12:43. Показов 4866. Ответов 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
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru