Текст Java на кнопках не отображается - PullRequest
0 голосов
/ 05 июля 2019

Я делаю простое приложение Java Swing и текст на некоторых кнопках не отображается.

Один из JButtons с текстом «Очистить», и его текст отображается, но я попытался установить текст других кнопок на «Изменить цвет», «Написать», «c», «w», но ни один изони показывают этот текст, даже не "...".

Эта часть (не фактическая) кода находится в конструкторе класса, который расширяет JFrame:

/* JPanel */ panel = new JPanel();
/* JButton */ testButton1 = new JButton("Change Color");
/* JButton */ testButton2 = new JButton("c");
panel.add(testButton);

/* this. */ pack();

Опять же, странно, что текст отображается только на одной кнопке, которая создается так же, как и другие.

1 Ответ

0 голосов
/ 06 июля 2019

Я строю пример здесь.

import java.awt.FlowLayout;   
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class DisplayTest {

    public static void main(String[] args) {

        run(new Display(), 400, 300);
    }

    public static void run(JFrame jFrame,int width,int height) {
        jFrame.setDefaultCloseOperation(Display.EXIT_ON_CLOSE);
        jFrame.setSize(width, height);
        jFrame.setVisible(true);
        jFrame.setLayout(new FlowLayout());
    }
}

class Display extends JFrame{

    JPanel panel = new JPanel();
    JButton testButton = new JButton("Change Color");
    JButton clearButton = new JButton("clear");

    public Display() {
        add(testButton);
        add(clearButton);
        pack();
    }       
}

Обратите внимание, BorderLayout заставит более поздний компонент заменить предыдущий, flowLayout покажет все добавленные вами компоненты.

...