不显示按钮上的Java文本

时间:2019-07-05 20:35:45

标签: java swing text label jbutton

我正在制作简单的Java swing应用程序,并且某些按钮上的文本未显示。

其中一个JButtons带有文本“ Clear”,并显示其文本,但是我尝试将其他按钮的文本设置为“ Change Color”,“ Write”,“ 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 :(得分:0)

我在这里建立一个例子。

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将显示您添加的所有组件。