【发布时间】:2019-07-05 20:35:45
【问题描述】:
我正在制作简单的 Java swing 应用程序,但某些按钮上的文本未显示。
其中一个 JButton 带有文本“清除”并显示其文本,但我尝试将其他按钮的文本设置为“更改颜色”、“写入”、“c”、“w”,但没有一个显示这个文本,甚至不是“...”。
这部分(不是实际的)代码在扩展JFrame的类的构造函数中:
/* JPanel */ panel = new JPanel();
/* JButton */ testButton1 = new JButton("Change Color");
/* JButton */ testButton2 = new JButton("c");
panel.add(testButton);
/* this. */ pack();
同样,奇怪的是文本只显示在一个按钮上,它的创建方式与其他按钮相同。
【问题讨论】:
-
其创建方式与其他人相同。 - 发布您的minimal reproducible example 以展示问题。那就是创建一个带有两个 JButton 的 JFrame,每个 JButton 都有不同的文本来演示您的问题。以及为什么您的代码显示了 JPanel 的创建,但您从未向面板添加任何组件。如果没有适当的“MRE”,我们真的无法判断您在做什么
-
我的猜测是你一直在向框架添加按钮,这将不起作用,因为默认情况下 JFrame 使用 BoderLayout 并且默认情况下组件被添加到
BorderLayout.CENTER。但是,只能将一个组件添加到 CENTER。您需要先将按钮添加到面板,然后将面板添加到框架中。阅读 Layout Managers 上的 Swing 教程,了解 Swing 基础知识。 -
当我将按钮移动到其他自定义 JPanel 类时,文本出现了。
标签: java swing text label jbutton