ребята Я новичок в программировании на Java теперь мне приходится иметь дело с графическим программированием. У меня есть простая программа для администратора, чтобы создать плеер на данный момент. У меня есть класс представления, чтобы отображать меню, поэтому, когда пользователь нажимает на создание проигрывателя, будет отображаться интерфейс.Java GUI Программирование закрытия текущего кадра
, тогда в этом меню у меня есть actionListener, который переходит к другому методу и показывает всплывающее меню, которое затем показывает, что игрок создан успешно. Теперь проблема в том, как я могу показать главное меню, а не создать меню проигрывателя.
Для администратора будет несколько функций, но теперь мне просто нужно закончить первую функцию, а остальные будут похожи. Когда вы нажимаете на главное меню (создаете кнопку игрока), он переходит к другой функции (JFrame), чтобы запросить ввод, снова перейдите к другой функции, чтобы getText из текстового поля и сохраните его в файле
мои коды для tpublic void show() {
JFrame frame = new JFrame("Admin");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel = new JPanel();
mainPanel.setPreferredSize(new Dimension(300,300));
panel1 = new JPanel(new GridLayout(6,1));
text = new JLabel("Admin Main Menu");
text.setFont(new Font("Lucida",Font.PLAIN,24));
//set panel layout (rows,cols,hgap,vgap)
panel1.setLayout(new GridLayout(0,1,10,10));
button1 = new JButton("Create a player");
button2 = new JButton("Delete a player");
button3 = new JButton("Top up Player's Chips");
button4 = new JButton("Reset Player's password");
button5 = new JButton("Change admin's password");
button6 = new JButton("Logout");
mainPanel.add(text);
panel1.add(button1);
panel1.add(button2);
panel1.add(button3);
panel1.add(button4);
panel1.add(button5);
panel1.add(button6);
mainPanel.add(panel1);
frame.add(mainPanel);
frame.pack();
frame.setVisible(true);
button1.addActionListener(new createPlayerListener());
button1 будет должен создать меню проигрывателя
private class createPlayerListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent event)
{
JFrame frame1 = new JFrame("Admin");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
text = new JLabel("Create a Player");
text.setFont(new Font("Lucida",Font.PLAIN,24));
mainPanel = new JPanel(new GridLayout(3,1));
mainPanel.setPreferredSize(new Dimension(500,400));
panel1 = new JPanel();
//panel1.setPreferredSize(new Dimension(300,200));
panel1.setLayout(new GridLayout(4,2,10,10));
name = new JLabel("Enter new player name:");
nameTextfield = new JTextField();
pw = new JLabel("Enter new player password:");
pwTextfield = new JTextField();
chip = new JLabel("Enter new player chips:");
chipTextfield = new JTextField();
button1 = new JButton("Create Player");
mainPanel.add(text);
panel1.add(name);
panel1.add(nameTextfield);
panel1.add(pw);
panel1.add(pwTextfield);
panel1.add(chip);
panel1.add(chipTextfield);
mainPanel.add(panel1);
mainPanel.add(button1);
frame1.add(mainPanel);
frame1.pack();
frame1.setVisible(true);
button1.addActionListener(new playerListener());
}
}
private class playerListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent event)
{
String name = nameTextfield.getText();
String pw = pwTextfield.getText();
String chip = chipTextfield.getText();
int chips = Integer.parseInt(chip);
//System.out.println(text);
controller.createPlayer(name, pw, chips);
//pop up window player created
JFrame frame2 = new JFrame();
JOptionPane.showMessageDialog(frame2, "Player Created Successfully!");
}
}
или я могу в то же createPlayerListener способного getText, чтобы я мог сохранить его в файл? поэтому мне не нужно называть playerListener –
одной из основных проблем, которые я могу увидеть быстро, - это то, что вы создаете mainPanel дважды, в основном коде и в методе actionPerformed, второй - переопределяет первый, и как только frame1 , он больше не действует. – faljbour