java - jspinner 标题边框被切断

标签 java swing jspinner titled-border

所以我的问题是,我之前在 Jspinners 上也遇到过这个问题。是我用标题边框包围我的 jspinner 吗?然而,在 GUI 中,它会剪切标题文本,因为 js 较小。那么,我如何强制 gui 根据标题的长度调整大小,或者如何管理使 jspinner 更长,我想提供足够的空间来容纳整个标题?

JTextField name= new JTextField(9);
name.setBorder(new TitledBorder("Name"));
//setup spinner date format
SimpleDateFormat datePattern = new SimpleDateFormat("MM/dd/yyyy");
JSpinner dob = new JSpinner(new SpinnerDateModel());
dob.setEditor(new JSpinner.DateEditor(dob, datePattern.toPattern()));
dob.setBorder(new TitledBorder("Date of Birth"));
JPanel childPanel = new JPanel();
childPanel.setLayout(new FlowLayout());
childPanel.add(name);
childPanel.add(dob);
childPanel.setBorder(new TitledBorder("Child Info"));

然后:

JPanel mainPanel = new JPanel(); 
mainPanel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));        
mainPanel.add(childPanel);
childPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
//there are more items in this panel, just omitted them, that's why using BoxLayout

最佳答案

只需将 JSpinner 添加到 JPanel,然后将边框添加到面板即可:

    JPanel dobPanel = new JPanel();
    dobPanel.add(dob);
    dobPanel.setBorder(BorderFactory.createTitledBorder("Date of Birth"));

编辑:另请注意,使用 BorderFactory 比创建 Border 实例更好:

Wherever possible, this factory will hand out references to shared Border instances.

http://docs.oracle.com/javase/7/docs/api/javax/swing/BorderFactory.html

关于java - jspinner 标题边框被切断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999453/

相关文章:

java - GridBagLayout对齐和Button样式

java - 使用 Java Swing 计算并显示文本框中的字符数

java - 是否可以使用 nimbus laf 更改 jspinner 的背景?

java - 如何获取列表大小?

java - JDialog:防止父框架关闭

java - 从 JSpinner 获取日期并放入具有 DATE 格式的 MySQL 数据库列

java - 重置 Java Swing 中的微调器值

java - 无法在 Java8 中将悉尼转换为布里斯类 LocalDateTime

Java SAXParser 解析无效的 xml

java - 从外部更改和更新 JPanel 组件,JFrame 不起作用,Swing