我的整个代码已经完成,但我无法添加第二个按钮

时间:2012-04-01 06:59:50

标签: java swing user-interface awt

请看看我的代码,它按照我想要的方式工作正常,但唯一的问题是我想在我当前的按钮对面添加另一个按钮,我无法这样做,任何身体都可以帮助我。< / p>

import java.awt.event.*;
import javax.swing.*;

public class Example2 extends JFrame {

public Example2() {
        initUI();
    }

public final void initUI() {
        JPanel panel = new JPanel();
        getContentPane().add(panel);
        panel.setLayout(null);
        panel.setToolTipText("A Panel container");

        JButton button = new JButton("Even");
        button.setBounds(100, 60, 100, 30);
        button.setToolTipText("A button component");

        JButton button2 = new JButton("Odd");
        button2.setBounds(100, 60, 100, 30);
        button2.setToolTipText("A button component");

        //Add action listener to button
                button.addActionListener(new ActionListener () {
                    public void actionPerformed(ActionEvent  e)
                    {
                        //Execute when button is pressed
                        System .out.println("You clicked the button");
                        int sum=0;
                                for(int i=1;i<=100;i++){
                                    if(i%2==0){
                                        System.out.println(i);
                                        sum+=i;
                                    }
                                }
        System.out.println("Sum of even numbers: "+sum);
                    }
        });

        panel.add(button);
        panel.add(button2);

        setTitle("Tooltip");
        setSize(500, 400);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

    }
    public static void main(String[] args) {
                Example2 ex = new Example2();
                ex.setVisible(true);
    }
}

3 个答案:

答案 0 :(得分:7)

panel.setLayout(null);

这就是它开始出错的地方。

  1. 使用布局。见Laying Out Components Within a Container&amp; Effective Layout Management: Short Course了解更多详情。
  2. 使用:
    • 适当的布局。
    • 可能是nested inside one another
    • 使用适当的布局填充和白色空间的组件边框/插入。

  3. 暂且不说。

        ...
        button.setBounds(100, 60, 100, 30);
        button.setToolTipText("A button component");
    
        JButton button2 = new JButton("Odd");
        button2.setBounds(100, 60, 100, 30);
        ...
    

    您是否注意到两个按钮的界限是如何相同的?当你将两个相同大小的组件放在同一个地方时,你会发生什么?

答案 1 :(得分:3)

您必须将panel.setLayout(null)更改为您需要的布局。例如:

    panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));

    panel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER));

答案 2 :(得分:3)

Andrew Thompson +1,

以下是一些有用的链接:

  1. A Visual Guide to Layout Managers
  2. Using Layout Managers
  3. Adding space between components