Java JPanel如何使按钮工作?
当你阅读这段代码时,你会意识到我有一个动作事件要处理,它打开了一个新的JPanel,显示将运行ballBounce的按钮,但是现在我一直在尝试在该帧内获得一个工作按钮,因为该帧已经在actionEvent内,有什么帮助吗Java JPanel如何使按钮工作?,java,swing,jpanel,jbutton,actionlistener,Java,Swing,Jpanel,Jbutton,Actionlistener,当你阅读这段代码时,你会意识到我有一个动作事件要处理,它打开了一个新的JPanel,显示将运行ballBounce的按钮,但是现在我一直在尝试在该帧内获得一个工作按钮,因为该帧已经在actionEvent内,有什么帮助吗 public class MainJPanelOperation { public static void main(String[] a) { JPanel panel1 = new JPanel(new G
public class MainJPanelOperation
{
public static void main(String[] a)
{
JPanel panel1 = new JPanel(new GridLayout(5, 10, 1, 1));
JButton t1 = new JButton();
JButton t2 = new JButton();
JButton letsStart = new JButton("Start The Program!");
JButton t3 = new JButton();
JButton t4 = new JButton();
//letsStart.setBounds(200,250,12,12);
panel1.add(t1);
panel1.add(t2);
panel1.add(letsStart);
panel1.add(t3);
panel1.add(t4);
final JFrame frame1 = new JFrame("Game");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.add(panel1);
frame1.setSize(1000,1000);
frame1.setVisible(true);
t1.setVisible(false);
t2.setVisible(false);
t3.setVisible(false);
t4.setVisible(false);
letsStart.setBackground(Color.yellow);
panel1.setBackground(Color.black);
letsStart.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("panel 2 main menu intro online");
JPanel panelMM = new JPanel(new GridLayout(5, 10, 1, 0));
JButton MM1 = new JButton("BallBounce");
panelMM.add(MM1);
JFrame frameMM = new JFrame("Game/Main Menu");
frameMM.add(panelMM);
frameMM.setSize(1000,1000);
frameMM.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frameMM.setVisible(true);
frame1.setVisible(false);
}
});//end of start sequence
}
}
试试这个:它在动作侦听器中工作
JButton MM1 = new JButton("BallBoe");
MM1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("panel 2");
}
});
或class MainJPanelOperation实现ActionListener
您可以使用类mainjpa
{
静态按钮MM1;
//你的代码
}
MM1=new JButton("Button");
MM1.addActionListener(this);
在Main()之外编写一个方法
您可以将frameMM设置为final,而无需将所有代码都放在ActionListener中 那么就把它加在按钮的下面?我想我可以这样做,但那会变得一团糟,让所有的动作听众都像静态的按钮MM1一样彼此在一起;犯了一个错误:expressionok的非法启动我得到了静态工作,但现在我得到了一个nullPointerException
public void ActionPerformed(ActionEvent e)
{
if(e.getSource()==MM1)
{
System.out.print("");
}
if(e.getSource()==Buttonobject)
{
//your code for button Pressing Event
}
}
JPanel panelMM = new JPanel(new GridLayout(5, 10, 1, 0));
JButton MM1 = new JButton("BallBounce");
panelMM.add(MM1);
final JFrame frameMM = new JFrame("Game/Main Menu");
frameMM.add(panelMM);
frameMM.setSize(1000,1000);
frameMM.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
letsStart.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("panel 2 main menu intro
frameMM.setVisible(true);
frame1.setVisible(false);
}
});