Ich habe ein "Main Menu" JFrame mit verschiedenen JButtons für verschiedene Zeiträume erstellt. Wenn ich auf einen der Knöpfe klicke, öffnet sich ein neuer JFrame, aber wann immer ich darüber verfüge und zum Hauptmenü zurückkehre und es wieder öffne, scheint es, als ob es mehr Knöpfe und ich weiß nicht warum.Duplizierung von JButtons in JFrame
Main Menu
public class GUI extends JFrame implements ActionListener {
public static final int WIDTH=1000;
public static final int LENGTH=900;
public static JFrame myFrame = new JFrame("TOK Discussion Participation");
static JPanel myPanel = new JPanel();
public static JComponent buttonPanel;
public static JPanel IPanel = new JPanel();
public static JFrame Period7 = new JFrame("Period 7");
JPanel myPanel1 = new JPanel();
public static Object createPanelPERIOD7;
public JFrame getMyFrame()
{
return myFrame;
}
public void setWindow()
{
//// Creates Icon in frame
JLabel Image = new JLabel();
ImageIcon myIcon = new ImageIcon(new ImageIcon("https://stackoverflow.com/users/Antti/Desktop/GUI/TOKParticipation/src/TOK.jpg").getImage().getScaledInstance(200, 200, 1));
Image.setIcon(myIcon);
//set window
Color backgroundColor = new Color(5,149,251);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setBounds(550,200,1000,600);
myFrame.getContentPane().setBackground(Color.LIGHT_GRAY);
myFrame.setLayout(new BorderLayout());
myFrame.add(myPanel1,BorderLayout.NORTH);
myFrame.add(new JLabel(new ImageIcon("https://stackoverflow.com/users/Antti/Desktop/GUI/TOKParticipation/src/TOK.jpg")), BorderLayout.CENTER);
//myFrame.setIconImage("https://stackoverflow.com/users/Antti/Desktop/GUI/TOKParticipation/src/TOK.jpg");
myFrame.getContentPane().setBackground(backgroundColor);
myFrame.setVisible(true);
//set label
JLabel myLabel = new JLabel("TOK Discussion Participation");
JLabel myLabel1= new JLabel("");
JLabel myLabel2 = new JLabel("");
//set button (PERIOD 7)
JButton Period_7_BUTTON = new JButton("Period 7");
//set Listener (PERIOD 7)
Period_7_BUTTON.addActionListener(new GUI());
//2nd button (PERIOD 5)
JButton Period_5_BUTTON = new JButton("Period 5");
//set Listener PERIOD 5)
Period_5_BUTTON.addActionListener(new GUI());
//2nd button (PERIOD 2)
JButton Period_2_BUTTON = new JButton("Period 2");
//set Listener PERIOD 2)
Period_2_BUTTON.addActionListener(new GUI());
//2nd button (PERIOD 2)
JButton Period_4_BUTTON = new JButton("Period 4");
//set Listener PERIOD 4)
Period_4_BUTTON.addActionListener(new GUI());
//Setting Button FONT/SIZE
Period_2_BUTTON.setFont(new Font("Ubuntu", Font.BOLD,24));
Period_4_BUTTON.setFont(new Font("Ubuntu", Font.BOLD,24));
Period_5_BUTTON.setFont(new Font("Ubuntu", Font.BOLD,24));
Period_7_BUTTON.setFont(new Font("Ubuntu", Font.BOLD,24));
//Bundle button to panel
myPanel1.setLayout(new BoxLayout(myPanel1, BoxLayout.X_AXIS));
myPanel1.add(Period_7_BUTTON);
myPanel1.add(Period_5_BUTTON);
myPanel1.add(Period_2_BUTTON);
myPanel1.add(Period_4_BUTTON);
//add content to window and make it visible
myFrame.add(myPanel1,BorderLayout.NORTH);
myFrame.setVisible(true);
}
public void dispose(){
myFrame.dispose();
}
Andere JFrame, die Tasten einmal
//Method to create Period 7 Frame
public static void createFramePERIOD7() {
//Creates Panel + Buttons
JPanel P7_Panel = new JPanel();
JButton Column = new JButton("Add Columns");
JButton Insert = new JButton("Insert Student 7");
JButton Back = new JButton("Home");
//Adding Buttons and Layout to Period 7 Frame
Period7.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Period7.setBounds(550,200,1000,600);
Period7.setLayout(new FlowLayout());
Period7.add(Back);
Period7.add(Column);
Period7.add(Insert);
//Add ActionListener to Buttons
Back.addActionListener(new GUI());
Insert.addActionListener(new GUI());
Column.addActionListener(new GUI());
//Adding Panel to Frame
//Period7.add(P7_Panel);
Period7.setVisible(true);
}
wieder geöffnet Duplikaten und schließlich Zuhörer Code meine Endung
public void actionPerformed(ActionEvent e)
{
String buttonCommand = e.getActionCommand();
//Main menu Period 7 button
if(buttonCommand.equals("Period 7"))
{
myFrame.dispose();
createFramePERIOD7();
}
if(buttonCommand.equals("Home"))
{
setWindow();
Period7.dispose();
}
Ihre 'createFramePERIOD7' Methode fügt immer drei weitere Schaltflächen zum' Periode7' JFrame hinzu. Warum würden Sie nicht erwarten, jedes Mal drei weitere Knöpfe zu sehen? – VGR
Variablennamen sollten NICHT mit einem Großbuchstaben beginnen. Befolgen Sie die Java-Namenskonventionen. – camickr