如何显示JButton并赋予它功能?

时间:2014-07-30 00:01:19

标签: java swing jbutton

两个问题。
首先,我试图在JFrame上显示一个JButton,到目前为止,我已经设法显示没有任何内容的JFrame。
其次,如何为按钮添加功能?你会传递一种方法吗? 任何反馈都表示赞赏。

           <code>
           //imports SWING etc...
           //global variables...

            public class FahrenheitGUI {
            public static void main(String args[]){
            prepareGUI();
            }

            private static void prepareGUI(){
            JFrame frame = new JFrame("Temp");
            JPanel panel = new JPanel();
            JLabel temperatureLabel;
            int h = 300; int w = 300;
            frame.setSize(h,w);

            JButton one = new JButton( "0" );
            JButton two = new JButton( "1" );
            JButton three = new JButton( "2" );
            JButton four = new JButton( "3" );
            JButton five = new JButton( "4" );
            JButton six = new JButton( "5" );
            JButton seven = new JButton( "6" );
            JButton eight = new JButton( "7" );
            JButton nine = new JButton( "8" );
            JButton ten = new JButton( "9" );
            JButton negative = new JButton( "-" );
            JButton dot = new JButton( "." );
            JButton reset = new JButton( "reset" );

            one.setBounds(10,10,20,20);

            //one.addActionListener(onButtonPress);
            //creates an error

            frame.setVisible(true);
            }

            }



            class Keypad implements ActionListener{

            public void actionPerformed( ActionEvent one){
            // guessing 
            }
            public void actionPerformed( ActionEvent two){
            // guessing 
            }    
            }

2 个答案:

答案 0 :(得分:2)

您可以创建JPanel,向面板添加按钮,然后将整个面板添加到JFrame,如下所示:

JPanel panel = new JPanel(); //by default it will has FlowLayout
panel.add(yourButton);
frame.add(yourJPanel);
frame.setVisible(true);

我个人创建了扩展JPanel的类,并在其中设置了面板的大小(不是框架),然后,在我的框架中添加面板后,我调用了pack()方法,这将调整你的大小框架参考面板的大小。 如果您想更改默认布局管理器,只需致电setLayout(LayoutManager) 编辑: 如果您想为按钮添加功能,请使用:

 yourButton.addActionListener(new ActionListener() 
 {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            //button logic
        }
 });

答案 1 :(得分:0)

为每个按钮调用frame.add(Button)。之后frame.pack()一次。