Весь мой код завершен, но я не могу добавить вторую кнопку - PullRequest
0 голосов
/ 01 апреля 2012

Пожалуйста, посмотрите на мой код, он работает нормально, как я хочу, но единственная проблема заключается в том, что я хочу добавить еще одну кнопку напротив моей текущей кнопки, и я не могу сделать это, может ли какой-либо орган, пожалуйста, помогите мне.

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 ]

7 голосов
/ 01 апреля 2012
panel.setLayout(null);

Вот где он начинает идти не так.

  1. Используйте макеты.См. Компоновка компонентов в контейнере & Эффективное управление компоновкой: краткий курс для получения дополнительной информации.
  2. Использование:
    • Соответствующие компоновки.
    • Возможно , вложенные друг в друга .
    • С соответствующей компоновкой и рамкой / вставками компонентов для пробелов.

В сторону.

    ...
    button.setBounds(100, 60, 100, 30);
    button.setToolTipText("A button component");

    JButton button2 = new JButton("Odd");
    button2.setBounds(100, 60, 100, 30);
    ...

Вы заметили, как границы двух кнопок были идентичны?Что, по вашему мнению, происходит, когда вы помещаете два компонента одного размера в одно и то же место?

3 голосов
3 голосов
/ 01 апреля 2012

Вы должны изменить panel.setLayout(null) на нужный вам макет.Например:

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

или

    panel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...