JButton не появляется на JFrame - PullRequest
0 голосов
/ 27 апреля 2018

Ниже приведен код, в котором кнопка не отображается на кадре. Я также установил видимым для истины. Даже тогда кнопка не появляется.

class gui{
        public static void main(String args[]){
            layoutBorder lb=new layoutBorder("check");
        }
    }

class layoutBorder extends JFrame{
    layoutBorder(String title){
        super(title);
        setLayout(null);
        setSize(200, 200);
        JButton jb=new JButton("JB");
        add(jb);
        setVisible(true);
    }
}

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

camickr прав. Кроме того, всегда используйте поток диспетчеризации событий AWT, когда поток приложения должен обновить GUI.

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

public class Gui {
    public static void main(String args[]) {
        SwingUtilities.invokeLater(() -> {
            MyFrame frame = new MyFrame("check");
        });
    }
}

class MyFrame extends JFrame {
    MyFrame(String title){
        super(title);
        setLayout(new BorderLayout());
        setSize(200, 200);
        JButton jb = new JButton("JB");
        add(jb);
        setVisible(true);
    }
}
0 голосов
/ 27 апреля 2018

Если вы хотите null макетов, то вам нужно установить размеры и положение самостоятельно. Использование методов setLocation и setSize.

class gui{
        public static void main(String args[]){
            layoutBorder lb=new layoutBorder("check");
        }
    }

class layoutBorder extends JFrame{
    layoutBorder(String title){
        super(title);
        setLayout(null);
        setSize(200, 200);
        JButton jb=new JButton("JB");
        jb.setLocation(10, 10);
        jb.setSize(40, 30);
        add(jb);
        setVisible(true);
    }
}
0 голосов
/ 27 апреля 2018

Не используйте пустой макет !!!

Swing был разработан для использования с менеджерами компоновки.

Прочтите раздел из учебника по Swing o Менеджеры по раскладке для получения дополнительной информации.

Предлагаю вам скачать рабочие примеры и поиграть с ними. Пример также покажет вам, как лучше структурировать ваш код. Возможно, начните с кода из How to Use Buttons, в котором есть простой пример, который добавляет 3 кнопки на панель, а затем панель на фрейм.

Кроме того, имена классов должны начинаться с заглавной буквы. Вы когда-нибудь видели класс в API, который не ??? Изучите соглашения Java и следуйте им.

...