Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Удаление компонента


Автор: Aehn 4.5.2008, 09:21
Из списка вопросов на форуме по удалению компонентов непонятно, так как все-таки гарантированно удалить созданный и размещенный на панели с помощью jPanel1.add(SomeThing) компонент SomeThing?

Автор: fixxer 4.5.2008, 13:10
java.awt.Container#remove(Component) + java.awt.Container#validate()

Читайте javadoc, он рулит smile 

Автор: Aehn 12.5.2008, 08:10
Все-таки как удалить компонент?
Иными словами, как сделать действие, обратное действиям
Код

        jPanel1.add( menubar );
        jPanel1.add( myComponent );

Цитата

java.awt.Container#remove(Component) + java.awt.Container#validate()

Читайте javadoc, он рулит  

Автор: fixxer 12.5.2008, 09:57
Цитата(fixxer @ 4.5.2008,  13:10)
java.awt.Container#remove(Component) + java.awt.Container#validate()

Читайте javadoc, он рулит smile


+ java.awt.Componetn#repaint()

Еще раз повторить?

Автор: dorogoyIV 12.5.2008, 14:39
попробуем на пальцах объяснить (ну пропустил человек эту тему, ну и что?)
Код

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class RemoveTest extends JFrame
                        implements ActionListener
{
 JButton jb = new JButton("Button");

 public RemoveTest()
 {
  add(jb);
  jb.addActionListener(this);
 }

 public void actionPerformed(ActionEvent e)
 {
  Component [] comp = getContentPane().getComponents();

  if(comp.length > 1)
   remove(comp [1]);

  else
   add(new JLabel("Я добавлен"));

  validate();
  repaint();
// попробовал?, а теперь попробуй закоментировать эти две строки -   validate(); repaint();
 }

 public static void main(String [] args)
 {
  JFrame f = new RemoveTest();
  f.setLayout(new FlowLayout());
  f.setBounds(100, 100, 400, 300);
  f.setVisible(true);
  f.setDefaultCloseOperation(3);
 }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)