This example show inserting UI compnents in run-time dynamically:
|
Insert UI dynamically |
package javadynui;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
/**
*
* @web http://java-buddy.blogspot.com/
*/
public class JavaDynUI extends JFrame {
static JavaDynUI myFrame;
static int countMe = 0;
JPanel mainPanel;
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
createAndShowGUI();
});
}
private static void createAndShowGUI() {
myFrame = new JavaDynUI();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.prepareUI();
myFrame.pack();
myFrame.setVisible(true);
}
private void prepareUI() {
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JButton buttonAdd = new JButton("Add subPanel");
buttonAdd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mainPanel.add(new subPanel());
myFrame.pack();
}
});
getContentPane().add(mainPanel, BorderLayout.CENTER);
getContentPane().add(buttonAdd, BorderLayout.PAGE_START);
}
private class subPanel extends JPanel {
public subPanel() {
super();
JLabel myLabel = new JLabel("Hello subPanel(): " + countMe++);
add(myLabel);
}
}
}
No comments:
Post a Comment