0
我想在運行時將JCombobox添加到面板,我不知道這一點,所以如果您對此有任何想法,請告訴我。如何在運行時向面板添加新組件
我想在運行時將JCombobox添加到面板,我不知道這一點,所以如果您對此有任何想法,請告訴我。如何在運行時向面板添加新組件
我假設你想添加一個組合框到已經在屏幕上的組件。只需將該組件添加到相應的Container並調用Container的validate方法即可。以下是此一個小例子:
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Application {
private static final String[] choices = { "One", "Two", "Three" };
/**
* @param args
*/
public static void main(String[] args) {
JFrame frame = new JFrame();
final JPanel content = new JPanel();
content.setPreferredSize(new Dimension(50, 200));
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
JButton addButton = new JButton(new AbstractAction("Add Combobox") {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent arg0) {
content.add(new JComboBox(choices));
content.validate();
}
});
frame.add(content);
content.add(addButton);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
雖然我使用了一個框架只在這個例子中,它也應該爲JPanel工作。
我使用Swing revalidate()方法而不是AWT validate()方法。 – camickr 2010-02-20 16:20:28
你可以更具體地說明你想要做什麼?你關心運行時間還是編譯時間?或者你只是想將JComboBox添加到面板? – akf 2010-02-20 11:47:55