gpt4 book ai didi

看不到 Java GUI 按钮的标签

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:49:59 25 4
gpt4 key购买 nike

我是一名二年级学生,正在研究我的 OOP 项目(计算器)。我完成了数字按钮和运算符的功能。现在我正处于重新排列按钮的阶段。起初,我只是将我的按钮大小设置为 (50,50),它工作正常并且它的标签仍然可见,但是当我决定将它变小 (30, 30) 时,它的标签变成了“...” .

这是图片:

GUI btn shows ... instead of MC, MR, MS, and M+

这是我的代码:

  lblEdit.setBounds(-138,-5,180,50);    
lblView.setBounds(-90,-5,180,50);
lblHelp.setBounds(-40,-5,180,50);
txt.setBounds(15,35,250,30); // text pane
txt2.setBounds(0,330,100,20);
blank.setBounds(15,80,30,30); // this is just an extra button, no use at all, OK? :D
btnMC.setBounds(15,115,30,30);
btnMR.setBounds(15,150,30,30);
btnMS.setBounds(15,185,30,30);
btnMp.setBounds(15,220,30,30);

最佳答案

您的问题是您一开始就设置了按钮大小。如果您改为使用适当的布局管理器并在 JFrame 上调用 pack(),让 JButtons 和 GUI 自行调整大小,您将获得一个外观不错的 GUI,它可以在任何操作系统中显示所有文本。解决方案:不要使用空布局,不要调用 setBounds(...),阅读并使用嵌套 JPanel 中包含的适当布局管理器,让这些布局管理器完成所有繁重的布局为你举重。

例如,您可以使用 GridLayout 创建按钮网格,并通过简单地更改按钮的字体大小来更改网格和按钮的大小。例如,运行下面的代码两次,更改按钮字体大小(在下面的代码中,浮点常量 BTN_FONT_SIZE)并查看 GUI 如何通过将按钮大小调整为最佳大小来自动适应按钮字体。

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

public class CalcEg {
private static final float BTN_FONT_SIZE = 20f; // **** try using 40f here ****
private static final String[][] BTN_LABELS = {
{"7", "8", "9", "-"},
{"4", "5", "6", "+"},
{"1", "2", "3", "/"},
{"0", ".", " ", "="}
};
private JPanel mainPanel = new JPanel();

public CalcEg() {
int rows = BTN_LABELS.length;
int cols = BTN_LABELS[0].length;
int gap = 4;
mainPanel.setBorder(BorderFactory.createEmptyBorder(gap, gap, gap, gap));
mainPanel.setLayout(new GridLayout(rows, cols, gap, gap));
for (String[] btnLabelRow : BTN_LABELS) {
for (String btnLabel : btnLabelRow) {
JButton btn = createButton(btnLabel);
// add ActionListener to btn here
mainPanel.add(btn);
}
}
}

private JButton createButton(String btnLabel) {
JButton button = new JButton(btnLabel);
button.setFont(button.getFont().deriveFont(BTN_FONT_SIZE));
return button;
}

public JComponent getMainComponent() {
return mainPanel;
}

private static void createAndShowGui() {
CalcEg mainPanel = new CalcEg();

JFrame frame = new JFrame("CalcEg");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(mainPanel.getMainComponent());
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}

如果您使用 JPanel 将按钮 JPanel 嵌套到 BorderLayout 中,并将 JTextField 添加到它的 PAGE_START 或 NORTH 端,并且您使用不同的字体大小,您将看到类似这样的内容:

enter image description here

关于看不到 Java GUI 按钮的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15049058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com