Barais_19 Ответов: 1

Добавление кнопок JB в графическое приложение


У меня есть проблема, когда мои кнопки вообще не появляются.

Что я уже пробовал:

пакет journal.pkg7a;
/**
*
* @автор stephenwessels
*/
импорт javax.swing.*;
импорт java.awt.*;
импорт java.awt.event.*;
публичный класс Journal7A расширяет JFrame реализует ActionListener
{
Содержимое контейнера = новый контейнер();
JButton btnGreen = новый JButton("зеленый");
JButton btnBlue = новый JButton("синий");
JButton btnRed = новый JButton("Красный");

общественные Journal7A()
{
content.setLayout(новый FlowLayout());
content.add(btnBlue, BorderLayout.ЮГ);
content.add(btnGreen, BorderLayout.ЮГ);
content.add(btnRed, BorderLayout.ЮГ);

это.функцию setvisible(истина);
это.метод setsize(300,300);
это.setDefaultCloseOperation(форму.EXIT_ON_CLOSE);
this.setTitle("первое графическое приложение");


btnBlue.addActionListener(это);
btnGreen.addActionListener(это);
btnRed.addActionListener(это);
}
@Ручная коррекция
общественного недействительными событий actionperformed(типа actionevent е)
{
Jbutton с БТН = (jbutton с) эл.getSource();
if(btn == btnBlue)
content.setBackground(Color.BLUE);
еще
content.setBackground(цвет.ЗЕЛЕНЫЙ);
content.setBackground(Color.RED);
}

/**
* @param args аргументы командной строки
*/
публичный статический пустота главный(строка[] аргументы)
{
Journal7A gui = новый Journal7A();
}

}

1 Ответов

Рейтинг:
2

wseng

Нет никакой необходимости в вашем Journal7A класс к подклассу JFrame Вместо этого вы можете расширить свой класс до JPanel, и создайте объект фрейма в вашем основном.

public class Journal7A extends JPanel implements ActionListener {

    JPanel content = new JPanel();
    JButton btnGreen = new JButton("Green");
    JButton btnBlue = new JButton("Blue");
    JButton btnRed = new JButton("Red");

    public Journal7A() {
        content.setLayout(new FlowLayout());
        content.add(btnBlue, BorderLayout.SOUTH);
        content.add(btnGreen, BorderLayout.SOUTH);
        content.add(btnRed, BorderLayout.SOUTH);
        btnBlue.addActionListener(this);
        btnGreen.addActionListener(this);
        btnRed.addActionListener(this);
        add(content);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        JButton btn = (JButton) e.getSource();
        if (btn == btnBlue) {
            content.setBackground(Color.BLUE);
        } else {
            content.setBackground(Color.GREEN);
        }
        content.setBackground(Color.RED);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Journal7A gui = new Journal7A();
        Frame frame = new JFrame();
        frame.add(gui);
        frame.pack();
        frame.setSize(300, 300);
        frame.setTitle("First GUI App");
        frame.setVisible(true);
    }

}

Если вы хотите использовать свой собственный код , добавьте
add(content);
после строки
btnRed.addActionListener(this);