如何将按钮的文本调整为按钮的大小 – Java的Swing
发布时间:2020-12-15 04:13:47 所属栏目:Java 来源:网络整理
导读:我是新来的,在 Java中迈出了第一步. 出于学习目的,我正在尝试使用包含编号按钮的网格创建一个简单的GUI. 问题是,按钮的文本不会根据按钮的大小进行调整. 让我先向您展示代码,这样您就会明白我的意思: import javax.swing.*;import java.awt.GridLayout;impo
我是新来的,在
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)); 如果要在默认情况下使按钮成为方形,则可以覆盖其首选大小: 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致信). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |