Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166

JFrame

26.09.2011, 12:39. Показов 5447. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет... Ответьте пожалуйста на вопросик. Вот например в NetBeans'е я создал пример формы приложения, так какой переменной там обозначено окно приложения, потому что я например хочу добавить скроллинг в неё, и:
Java
1
JScrollPane jScrollPane1=new jScrollPane("а что тут писать я и не знаю");
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2011, 12:39
Ответы с готовыми решениями:

Проходил ли кто-то видео-курс techpro? Как у них получилось JFrame в JFrame добавить
Проходил ли кто-то видео-курс techpro? Как у них получилось JFrame в JFrame добавить? http://teachpro.ru/Course/JavaforBeginners...

Как закрыть один JFrame и открыть новый JFrame?
привет подскажите как реализовать. есть отдельный класс с выпадающим меню(там три пункта). есть отдельный класс который рисует фрейм,...

Как сделать Jframe внутри другого JFrame
Доброго времени суток джентльмены и леди. Как сделать так, что бы внутри главного JFrame запустить несколько других...

12
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
26.09.2011, 12:48
How to use scroll panes

JScrollPane - это контейнер. Его добавляете в JFrame (а не наоборот), в него - все элементы интерфейса.
1
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166
27.09.2011, 11:54  [ТС]
Ну смотри, я, например, так создаю JScrollPane:
Java
1
    JScrollPane jScrollPane1=new JScrollPane(jTable1);
Ну jTable1, это некая имеющаяся у меня таблица. Дальше так:
Java
1
2
        setPreferredSize(new Dimension(450, 110));
        add(jScrollPane1, BorderLayout.CENTER);
Но почему-то скроллинг не появляется. В чем проблема?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
27.09.2011, 14:20
Он появляется только тогда, когда это надо. По умолчанию столбцы изменяют размер так, чтобы вписаться в контейнер. Т.е. горизонтальная полоса прокрутки не появится. А вертикальная не появится пока строки вписываются в контейнер.
1
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166
27.09.2011, 14:42  [ТС]
Дело в том что таблица то ни горизонтально, ни вертикально не вписывается в контейнер (форуму). Это видно ошибка в коде. Только какая?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
27.09.2011, 17:12
В том коде, который приведен, ошибок нет. Про остальной код ничего не могу сказать.
1
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166
28.09.2011, 12:42  [ТС]
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
package prog;
 
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
 
 
public class NewApplication extends javax.swing.JFrame {
    JTable jTable1;
    JScrollPane jScrollPane1=new JScrollPane(jTable1);
 
 
 
    public NewApplication() {
        initComponents();
    }
 
 
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
 
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        menuBar = new javax.swing.JMenuBar();
        fileMenu = new javax.swing.JMenu();
        openMenuItem = new javax.swing.JMenuItem();
        saveMenuItem = new javax.swing.JMenuItem();
        saveAsMenuItem = new javax.swing.JMenuItem();
        exitMenuItem = new javax.swing.JMenuItem();
        editMenu = new javax.swing.JMenu();
        cutMenuItem = new javax.swing.JMenuItem();
        copyMenuItem = new javax.swing.JMenuItem();
        pasteMenuItem = new javax.swing.JMenuItem();
        deleteMenuItem = new javax.swing.JMenuItem();
        helpMenu = new javax.swing.JMenu();
        contentsMenuItem = new javax.swing.JMenuItem();
        aboutMenuItem = new javax.swing.JMenuItem();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
        jTextField1.setText("jTextField1");
 
        jTextField2.setText("jTextField2");
 
        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
 
        fileMenu.setMnemonic('f');
        fileMenu.setText("File");
 
        openMenuItem.setMnemonic('o');
        openMenuItem.setText("Open");
        fileMenu.add(openMenuItem);
 
        saveMenuItem.setMnemonic('s');
        saveMenuItem.setText("Save");
        fileMenu.add(saveMenuItem);
 
        saveAsMenuItem.setMnemonic('a');
        saveAsMenuItem.setText("Save As ...");
        saveAsMenuItem.setDisplayedMnemonicIndex(5);
        fileMenu.add(saveAsMenuItem);
 
        exitMenuItem.setMnemonic('x');
        exitMenuItem.setText("Exit");
        exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitMenuItemActionPerformed(evt);
            }
        });
        fileMenu.add(exitMenuItem);
 
        menuBar.add(fileMenu);
 
        editMenu.setMnemonic('e');
        editMenu.setText("Edit");
 
        cutMenuItem.setMnemonic('t');
        cutMenuItem.setText("Cut");
        editMenu.add(cutMenuItem);
 
        copyMenuItem.setMnemonic('y');
        copyMenuItem.setText("Copy");
        editMenu.add(copyMenuItem);
 
        pasteMenuItem.setMnemonic('p');
        pasteMenuItem.setText("Paste");
        editMenu.add(pasteMenuItem);
 
        deleteMenuItem.setMnemonic('d');
        deleteMenuItem.setText("Delete");
        editMenu.add(deleteMenuItem);
 
        menuBar.add(editMenu);
 
        helpMenu.setMnemonic('h');
        helpMenu.setText("Help");
 
        contentsMenuItem.setMnemonic('c');
        contentsMenuItem.setText("Contents");
        helpMenu.add(contentsMenuItem);
 
        aboutMenuItem.setMnemonic('a');
        aboutMenuItem.setText("About");
        helpMenu.add(aboutMenuItem);
 
        menuBar.add(helpMenu);
 
        setJMenuBar(menuBar);
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1))
                .addContainerGap(327, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton1)
                .addContainerGap(180, Short.MAX_VALUE))
        );
 
        pack();
    }// </editor-fold>                        
 
    private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                             
        System.exit(0);
    }                                            
 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        boolean b=isAncestorOf(jTable1);                   /*ну вот тут наверно и кроется ошибка где-то*/
        if(b==true)
            remove(jTable1);
        setLayout(new FlowLayout(FlowLayout.CENTER));
        jTable1=new JTable();
        DefaultTableModel model=new DefaultTableModel();
        jTable1.setModel(model);
        int i1=Integer.parseInt(jTextField1.getText());
        int i2=Integer.parseInt(jTextField2.getText());
        model.setColumnCount(i1);
        model.setRowCount(i2);
        add(jTable1);
        setPreferredSize(new Dimension(450, 110));
        add(jScrollPane1, BorderLayout.CENTER);
        validate();
        repaint();
    }                                        
 
 
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
 
            public void run() {
                new NewApplication().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JMenuItem aboutMenuItem;
    private javax.swing.JMenuItem contentsMenuItem;
    private javax.swing.JMenuItem copyMenuItem;
    private javax.swing.JMenuItem cutMenuItem;
    private javax.swing.JMenuItem deleteMenuItem;
    private javax.swing.JMenu editMenu;
    private javax.swing.JMenuItem exitMenuItem;
    private javax.swing.JMenu fileMenu;
    private javax.swing.JMenu helpMenu;
    private javax.swing.JButton jButton1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JMenuItem openMenuItem;
    private javax.swing.JMenuItem pasteMenuItem;
    private javax.swing.JMenuItem saveAsMenuItem;
    private javax.swing.JMenuItem saveMenuItem;
    // End of variables declaration                   
}
Вот весь код. Помоги пожалуйста разобраться, почему JScrollPane не появляется.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
28.09.2011, 14:49
1. Кто Вас учил добавлять в контейнер сначала таблицу, потом jscrollPane? Поскольку родитель у таблицы может быть только один - при добавлении в контейнер из JScrollPane она удаляется.

2. Вы пересоздаете таблицу - jTable1=new JTable() - при этом добавляете ее в контейнер, после чего добавляете старый jScrollPane, созданный вокруг СТАРОЙ таблицы - jScrollPane вокруг новой Вы не создавали. В итоге JScrollPane отображается в виде точки за таблицей. А таблица, естественно, без скроллинга.

Java
1
2
3
        jTable1=new JTable();
        jScrollPane1=new JScrollPane(jTable1);
        add(jScrollPane1, BorderLayout.CENTER);
1
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166
29.09.2011, 07:01  [ТС]
Спасибо большое. Тут ещё один вопрос возник . А нельзя вот чтоб эта панель прокрутки была и горизонтально, а то если уж очень большую таблицу делать там не очень удобный интрефейс...
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
29.09.2011, 10:54
http://download.oracle.com/jav... zeMode(int) + AUTO_RESIZE_OFF
1
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166
29.09.2011, 15:05  [ТС]
Блин что-то не совсем понял. После какой строки кода (который выше) именно надо вставить строчку jTable1.AUTO_RESIZE_OFF;... А то что-то не получается...
Всё, спасибо большое . Сам разобрался .
0
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166
18.10.2011, 07:19  [ТС]
По мере работы ещё вопросики возникли. Ответь пожалуйста . Как сделать так, чтобы при запуске приложения оно растягивалось на весь экран? И каким методом во время работы с программой можно переименовывать столбцы в таблице?

Добавлено через 56 минут
Как переименовывать столбцы, понял, а вот как задавать их размер?

Добавлено через 14 часов 54 минуты
И как зафиксировать столбцы, чтобы их нельзя было двигать?
0
6 / 6 / 2
Регистрация: 16.01.2011
Сообщений: 166
19.10.2011, 14:16  [ТС]
Всё, с тем разобрался, но вот ещё вопрос. Я сейчас работаю в NetBeans 7.0.1, так вот там такая таблица, что разметки (линий) между столбцами нет, как сделать, что бы она была? Или как вернуться к виду таблицы, которая была в прошлой версии?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2011, 14:16
Помогаю со студенческими работами здесь

JFrame
Подскажите, будьте добры.. есть 2 фрейма. один - класс MainClass (frame), второй - ListenerAdd (frame1). обработчик события кнопки...

JFrame
У меня есть ResultSet данных из базы MySQL. При помощи чего вывести данные в графическом интерфейсе. Если выводить их в Lable, то...

JFrame
У меня есть две панели в которых я произвожу размещение элементов и я хочу между ними переключаться (одну скрывать другую выводить) ...

JFrame и БД
Доброго времени суток. И так, такая проблема. Есть код который Выводит базу данных в таблицу, проблема в том что код не мой, и не могу...

JFrame
java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Main().setVisible(true); ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru