如何将按钮的文本调整为按钮的大小 – Java的Swing
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何将按钮的文本调整为按钮的大小 – Java的Swing,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1992字,纯文字阅读大概需要3分钟。
内容图文
![如何将按钮的文本调整为按钮的大小 – Java的Swing](/upload/InfoBanner/zyjiaocheng/744/784d8e201f55429ba9e44d6ef8405067.jpg)
我是新来的,在Java中迈出了第一步.
出于学习目的,我正在尝试使用包含编号按钮的网格创建一个简单的GUI.
问题是,按钮的文本不会根据按钮的大小进行调整.
让我先向您展示代码,这样您就会明白我的意思:
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SimpleGUI implements ActionListener {
private JFrame frame;
private JPanel grid;
private JButton[] buttons;
public SimpleGUI() {
frame=new JFrame("Buttons grid");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
grid=new JPanel();
buttons=new JButton[100];
for (int i=0; i<buttons.length; i++) {
buttons[i]=new JButton(Integer.toString(i+1));
buttons[i].setActionCommand(Integer.toString(i+1));
grid.add(buttons[i]);
buttons[i].addActionListener(this);
}
frame.getContentPane().add(grid);
}
public static void main(String[] args) {
SimpleGUI gui=new SimpleGUI();
gui.go();
}
public void go() {
grid.setLayout(new GridLayout(10,10));
frame.setSize(500,500);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String buttonNum=e.getActionCommand();
System.out.println("You've pressed "+buttonNum);
}
}
我无法上传图片,因此您必须运行此代码才能查看结果.
问题是,按钮太小而文字无法容纳,因此不是数字,而是会出现三个点. (……)
只有当我展开窗口(从而相应地扩展按钮的尺寸)时,数字才会正确显示在按钮上.
有没有办法让文本自己调整按钮的尺寸,以便它始终可见?
谢谢你提前,并原谅我糟糕的语言(英语是我的第二语言).
解决方法:
确实可以为按钮内的文本提供更多空间.文本周围的额外空白区域由边距控制,可以更改:
button.setMargin(new Insets(0, 0, 0, 0));
如果要在默认情况下使按钮成为方形,则可以覆盖其首选大小:
buttons[i] = new JButton(Integer.toString(i + 1)) {
@Override
public Dimension getPreferredSize() {
Dimension naturalSize = super.getPreferredSize();
int sideLength = Math.max(naturalSize.width, naturalSize.height);
return new Dimension(sideLength, sideLength);
}
};
然后初始布局将是正方形,当使用pack()时(根据Andrew Thompson的回答你应该使用它).
编辑:更改了首选大小,以考虑按钮的正常首选尺寸. (再次向A. Thompson致信).
内容总结
以上是互联网集市为您收集整理的如何将按钮的文本调整为按钮的大小 – Java的Swing全部内容,希望文章能够帮你解决如何将按钮的文本调整为按钮的大小 – Java的Swing所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。