Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925

Добавление JTextField

18.02.2014, 15:03. Показов 3883. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setTitle("Test");
        frame.setSize(400,200);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);
        JPanel panel = new JPanel();
        frame.add(panel);
        JTextField textField = new JTextField(10);
        panel.add(textField);
        JButton button = new JButton("Нажми меня!");
        panel.add(button);
    }
Почему результат этого кода?


а не так?

(Появляется после изменения размера окна)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.02.2014, 15:03
Ответы с готовыми решениями:

JTextField?
Добрый вечер. Вопрос такой: У меня есть форма и на ней можно менять три целочисленных параметра, необходима подпись к ним, менять...

Работа с jTextField
Помогите пожалуйста. Мне надо, чтобы при нажатии на кнопку ПРОВЕРИТЬ, в текстовом поле сравнивалось значение с правильным. т.е. что-то...

JtextField DocumentListener
Есть такой код, где текст, вводимый в два JtextField, должен отображаться в JtextArea. Что я делаю не так? Как надо сделать? public void...

5
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
18.02.2014, 15:28
Лучший ответ Сообщение было отмечено reisal78 как решение

Решение

Цитата Сообщение от reisal78 Посмотреть сообщение
Почему результат этого кода?

а не так?

(Появляется после изменения размера окна)
"Это всё потому, что кто-то слишком много ест!" © В смысле, документацию не читает.

java.awt.Container.add(java.awt.Component)

If the container has already been displayed, the hierarchy must be validated thereafter in order to display the added component.
P.S. Я согласен, что в версии 1.6 было написано более внятно:

Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component.
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
18.02.2014, 18:55  [ТС]
Skipy, как все просто оказалось =) Такая простая ошибка, и сразу не увидел.
Но, кстати, меня смутило следующее:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setTitle("Test");
        frame.setSize(400,200);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);
        JPanel panel = new JPanel();
        frame.add(panel);
//        JTextField textField = new JTextField(10);
//        panel.add(textField);
        JButton button = new JButton("Нажми меня!");
        panel.add(button);
    }
Вот так кнопка то рисуется, поэтому я стал искать в сторону текстового поля.
Не поясните почему так происходит?


ПС... Для тех кто не понял в чем проблема:
Компоненты не отобразились потому что:
- создал фрейм
- отобразил его
- добавил компоненты
Если поменять местами 2 и 3 действие - проблема уходит.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
18.02.2014, 19:06
А там, судя по всему, вот что происходит. Когда кнопка фокус получает, она перерисовывается. То есть кнопка добавилась, наверное (не уверен!) получила фокус, перерисовалась. Проверьте, добавьте FocusListener.
0
 Аватар для soundtrack
42 / 42 / 12
Регистрация: 15.12.2011
Сообщений: 131
19.02.2014, 14:09
Я тоже сталкивался с такой проблемой, теперь после добавления всех необходимых элементов просто делаю
Java
1
        frame.revalidate();
Потому что менять местами - не всегда возможный вариант.
Цитата Сообщение от reisal78 Посмотреть сообщение
Если поменять местами 2 и 3 действие - проблема уходит.
Может быть Вам нужно будет добавлять элементы динамически когда что-нибудь произойдёт (например фрейм уже висит, а в 5:00 утра появляется кнопка ) Тогда ревалидейт заставит обновить изменения.
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
20.02.2014, 00:02
Цитата Сообщение от soundtrack Посмотреть сообщение
например фрейм уже висит, а в 5:00 утра появляется кнопка
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
package easybudda.fiveoclock;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class FiveOClock {
    private JFrame frame;
    private JButton button1, button2, button3;
    
    FiveOClock() {
        button1 = new JButton("Пять утра");
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                button1.setEnabled(false);
                button2.setVisible(true);
                button3.setEnabled(true);
            }
        });
        
        button2 = new JButton("Йа кнопко");
        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                JOptionPane.showMessageDialog(frame, "Йа нажато!");
            }
        });
        button2.setVisible(false);
        
        button3 = new JButton("Пол-шестого");
        button3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                button1.setEnabled(true);
                button2.setVisible(false);
                button3.setEnabled(false);
            }
        });
        button3.setEnabled(false);
        
        frame = new JFrame("FiveOClock");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());
        frame.setSize(400, 100);
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.setVisible(true);
    }
    
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new FiveOClock();
                }
        });
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2014, 00:02
Помогаю со студенческими работами здесь

Swing jtextfield
Всем привет,создал JTextField относительно большого размера и проблема в том что курсор в текстфилде по дефолту стоит в центре с левой...

JTextField и курсор
У меня в окне 2 поля JTextField, как узнать в каком из них установлен курсор?

Проверка на дату в JTextField
Коллеги! Кто подскажет, есть какие-нибудь мысли по поводу проверки введенной строки в JTextField на дату ? Если точнее: ввожу строку вида...

Получить значение из JTextField
Пытаюсь написать небольшую визуальную программу. В JTextField-ы вводятся параметры, а затем по нажатию кнопки "Решить" должно...

Запретить растягивание JTextField
Как сделать так что бы JTextField не ратягивалась class AuthoRization extends JFrame { AuthoRization() { ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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