我想制作工作按钮并将其放入我在下面的代码中。我的问题是,无论我在哪里放置actionlisteners或其他东西它总是给我奇怪的错误。当我按下它时,我想让我的按钮b1打印文本。我真的很感激帮助。我只是初学者。
public class Simulator {
public static void main(String[] args) {
boolean suc1,suc2,suc3,suc4,suc5,suc6,suc7;
JFrame f = new JFrame("Simulator");
f.setSize(500, 400);
f.setResizable(false);
f.setLayout(null);
f.setVisible(true);
JButton b1 = new JButton("Start");
JButton b2 = new JButton("Clear");
JButton b3 = new JButton("Find");
JButton b4 = new JButton("Stop");
b1.setBounds(20,335,80,25);
b2.setBounds(110,335,80,25);
b3.setBounds(200,335,80,25);
b4.setBounds(395,335,80,25);
f.add(b1);
f.add(b2);
f.add(b3);
f.add(b4);
}
}
答案 0 :(得分:0)
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class Simulator {
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
JFrame f = new JFrame("Simulator");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Unnecessary, just set the preferred size of the
// custom(?) component that renders the simulation,
// use layouts, & pack() the frame when done.
//f.setSize(500, 400);
f.setResizable(false);
// Bad idea. Will cause trouble until fixed.
//f.setLayout(null);
// Play with the numbers for different effects.
// If the edge of the buttons is not supposed to align
// with the 'simulation' panel, borders can be added to
// the elements to create that effect.
JPanel gui = new JPanel(new BorderLayout(5,5));
gui.setBorder( new EmptyBorder(10,30,10,30) );
JPanel simulation = new JPanel();
simulation.setPreferredSize(new Dimension(450,300));
simulation.setBackground(Color.WHITE);
gui.add(simulation, BorderLayout.CENTER);
JPanel buttonPanel = new JPanel( new BorderLayout(50,5) );
gui.add(buttonPanel, BorderLayout.SOUTH);
JPanel westButtons = new JPanel(new GridLayout(1,0,10,10));
JButton b1 = new JButton("Start");
JButton b2 = new JButton("Clear");
JButton b3 = new JButton("Find");
JButton b4 = new JButton("Stop");
westButtons.add(b1);
westButtons.add(b2);
westButtons.add(b3);
buttonPanel.add(westButtons, BorderLayout.WEST);
buttonPanel.add(b4, BorderLayout.EAST);
f.setContentPane(gui);
f.pack();
f.setVisible(true);
}
};
// ensure the UI is built on the EDT.
SwingUtilities.invokeLater(r);
}
}
答案 1 :(得分:-1)
尝试
JButton b1 = new JButton("Start");
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button b1 was pressed");
}
});
编辑:
似乎对我来说很好。这是完整的main()方法
public static void main(String[] args) {
boolean suc1,suc2,suc3,suc4,suc5,suc6,suc7;
JFrame f = new JFrame("Simulator");
f.setSize(500, 400);
f.setResizable(false);
f.setLayout(null);
f.setVisible(true);
JButton b1 = new JButton("Start");
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button b1 was pressed");
}
});
JButton b2 = new JButton("Clear");
JButton b3 = new JButton("Find");
JButton b4 = new JButton("Stop");
b1.setBounds(20,335,80,25);
b2.setBounds(110,335,80,25);
b3.setBounds(200,335,80,25);
b4.setBounds(395,335,80,25);
f.add(b1);
f.add(b2);
f.add(b3);
f.add(b4);
}