我不明白为什么我的 TextField 拒绝达到我要求的大小。我希望从你们那里得到一些见解。
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.TextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class HW09 extends JFrame{
public HW09() {
this.setVisible(true);
this.setSize(455, 155);
TextField cartonsPerShipmentBox = new TextField("5");
cartonsPerShipmentBox.setMaximumSize(new Dimension(20, 20));
Button calculateButton = new Button("Calculate!");
JPanel middleContainer = new JPanel();
middleContainer.setLayout(new GridLayout(2, 4));
middleContainer.add(new JLabel("Cartons Per Shipment: "));
//CARTON AMOUNT
middleContainer.add(cartonsPerShipmentBox);
//TOTAL BOX
middleContainer.add(new JLabel("Total: "));
middleContainer.add(new JLabel("Items per carton: "));
//ITEMS PER CARTON BOX
middleContainer.add(new Button("OOF"));
//CALCULATE BUTTON
middleContainer.add(calculateButton);
this.add(middleContainer);
}
public static void main(String[] args) {
HW09 hw = new HW09();
}
}
我想要这个,因为即使我的项目采用网格布局,但 TextField 对于我想要的东西来说确实太大了,这使得程序看起来很奇怪。我希望文本字段非常小,正如我用尺寸(20, 20)表示的那样。但是,当我运行该程序时,它使 TextField 与其他所有项目的大小相同。
最佳答案
宽度未设置为您的首选宽度的原因是传递给 TextField 构造函数的整数参数(示例中的 5)表示字段中的列数。该数字与字段当前字体提供的指标一起使用来计算字段的首选宽度。它不限制用户可以输入的字符数。为此,您可以使用格式化文本字段或文档监听器。
尝试减小列宽。
关于java - 为什么我的文本字段不是我指定的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53699880/