如何向JFrame添加多个按钮?

时间:2015-03-15 14:55:01

标签: java button jframe

我需要一些非常基本的东西。 我试过这个:

import java.*;
import javax.swing.*;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.event.ActionEvent;

import javax.swing.JComponent;
import javax.swing.JFrame;

public class thisthing
{
    public static void main(String[]args)
    {
        boolean done = false;
        while (!done)
        {
            JFrame frame = new JFrame();

            JButton button= new JButton("Add Interest");
            frame.add(button);
            JButton button1 = new JButton("Other Button");
            frame.add(button1);

            class AddInterestListener implements ActionListener
            {
                public void actionPerformed(ActionEvent event)
                {
                    System.out.println("hello, I was pressed");
                }
            }
            class OtherButtonListener implements ActionListener
            {
                public void actionPerformed(ActionEvent event)
                {
                    System.out.println("The Other button was pressed");
                }
            }

            ActionListener listener = new AddInterestListener();
            button.addActionListener(listener);
            ActionListener listener1 = new OtherButtonListener();
            button1.addActionListener(listener1);

            frame.setSize(100, 100);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
    }
}

但是当我运行它时,我的电脑在一个窗口上制作两个按钮时遇到了麻烦,所以它试图制作两个窗口。我真的不知道如何形容它,除了说它是一团糟,我做错了。 最后我需要添加三个形状的15个按钮(着名的AP挂钩游戏项目)..那么有什么方法我可以重新定位按钮并弄乱他们的尺寸?

1 个答案:

答案 0 :(得分:0)

您可以(推荐)使用另一个布局管理器(或自己定义一个)。或者(真的不推荐,非常丑陋的解决方案,但它有效):

frame.setLayout(null);

JButton button = new JButton("Hello world");
button.setBounds(20 , 20 , 100 , 30);
frame.add(button);

这会将按钮定位在给定位置并具有给定大小。或者你可以使用 button.setSize(100 , 30); button.setLocation(20 , 20);

注意:如果没有布局管理器,您可以自由定位组件,但默认情况下它们将具有边界(0,0,0,0),因此您始终必须设置位置和大小以获得任何可见的内容。我只提供这个解决方案,因为你要求它,你不应该使用它。