我的代码在文本框中显示一个按钮,但是当输入值更改时,文本框的大小也会更改。我不喜欢。是否有任何解决方案使文本框大小保持固定?或者关于如何在文本框中创建按钮的任何其他想法? 以下是我的代码:
JPanel panel = new JPanel();
panel.setLayout( new FlowLayout(FlowLayout.CENTER, 0, 0) );
panel.add(textField);
panel.add(button);
panel.setBackground( textField.getBackground() );
panel.setBorder( textField.getBorder() );
textField.setBorder(null);
答案 0 :(得分:1)
尝试BorderLayout并在BorderLayout.CENTER处添加文本字段,在BorderLayout.EAST处添加按钮。
答案 1 :(得分:1)
我尝试了你的代码,它似乎对我来说很好,稍作修改。可能是面板正在调整自身大小,而不是textField。尝试将面板包裹在另一个JPanel中以强制其形状。
JPanel panel = new JPanel();
JPanel outerPanel = new JPanel();
panel.setLayout( new FlowLayout(FlowLayout.CENTER, 0, 0) );
panel.add(textField);
panel.add(button);
panel.setBackground( textField.getBackground() );
panel.setBorder( textField.getBorder() );
textField.setBorder(null);
outerPanel.add(panel);
答案 2 :(得分:1)
您的示例似乎是文章Component Border中讨论的第二种选择。相反,您可能需要install()
一个ComponentBorder
,这是后来在同一篇文章中描述的第三个替代。
答案 3 :(得分:1)
是否有任何解决方案使文本框大小保持不变?
我猜你正在创建JTextField,如:
JTextField textField = new JTextField();
在这种情况下,文本字段大小会随着向其添加文本而更改。
相反,你应该使用:
JTextField textField = new JTextField(10);
并且文本字段将保持不变大小,在滚动之前至少保留10个字符。
答案 4 :(得分:-1)
使用其他布局,或尝试绝对定位