Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с отображением элемента 
:(
    Опции темы
Иероним
Дата 31.1.2011, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 31.3.2009

Репутация: нет
Всего: нет



Привет!
Суть проблемы: 
   В JPanel есть JTextField и JButton, в тестовое поле вводим текст, по клику по кнопке создаётся ещё одна JPanel, а текст из поля добавляется в метку, но ничего не видно, пока исходный фрейм не растянешь, когда его начинаеш растягивать, то тогда и появляется и новая панель и метка с текстом.

Вот код:
Код

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

  


public class aaa implements ActionListener{
    JFrame frame=new JFrame("abc");
    private static final int WIDTH=700;
    private static final int HEIGHT=450;
    private LinkedList<JTextField> list=new LinkedList<JTextField>();
    
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SwingUtilities.invokeLater(new Runnable() {
            
            @Override
            public void run() {
                // TODO Auto-generated method stub
                new aaa();
            }
        });
    }
    
    public aaa(){
        Toolkit kit=Toolkit.getDefaultToolkit(); 
        frame.setLocation((kit.getScreenSize().width-550)/2,(kit.getScreenSize().height-600)/2 );
        frame.getContentPane().setLayout(new GridLayout(6,1));
        frame.setSize(WIDTH, HEIGHT);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        
        createTXT();
        
    }
    private void createTXT(){
        JPanel panel=new JPanel();
        panel.setAlignmentX(JPanel.LEFT_ALIGNMENT);
        panel.setSize(WIDTH,25);
        panel.setBorder(BorderFactory.createLineBorder(Color.black));
        frame.getContentPane().add(panel);
        
        JTextField txt=new JTextField(45);
     JButton add=new JButton("add");
        add.addActionListener(this);
        
        panel.add(txt);
        panel.add(add);
        list.add(txt);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        java.util.Iterator<JTextField> iter=list.iterator();
        JTextField textField=iter.next();
        iter.remove();
        
        String pair=textField.getText();
        
        JPanel panel=(JPanel)textField.getParent();
        panel.removeAll();
        JLabel label=new JLabel(pair);
        label.setAlignmentX(JLabel.LEFT_ALIGNMENT);
        
        panel.add(label);
        panel.repaint();
        
        createTXT();
    }
    
    
    
    
}


PM MAIL   Вверх
dorogoyIV
Дата 31.1.2011, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Код

 createTXT()
 {
  ...
  frame.validate();
 }

PM MAIL   Вверх
Skipy
Дата 31.1.2011, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 4
Всего: 16



После добавления элемента нужно у контейнера вызвать doLayout().


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
Иероним
Дата 31.1.2011, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 31.3.2009

Репутация: нет
Всего: нет



Ага спасибо!!!
Помогло
Спасибо! Просто класс!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.