itr*_*tro 1 java layout swing textfield layout-manager
我有一个GUI,它基于Swing的JPanel,它使用BorderLayout.在北面板我添加了一个新的JPanel,它使用FlowLayout并包含两个textField和其他组件.当我更改textField的文本并隐藏此面板中的某些组件时,此textField会继续调整大小.我怎么能避免这个?无论发生什么,我都希望textField保持相同的大小.我已经尝试过setSize,setPreferredSize,setMinimumSize但没有成功.
txtSource = new WebTextField(source);
txtSource.setMaximumSize(new Dimension(30,20));
txtSource.setMinimumSize(new Dimension(20, 20));
txtSource.setEditable(false);
txtDestination = new WebTextField(destination);
txtDestination.setMaximumSize(new Dimension(30,20));
txtDestination.setMinimumSize(new Dimension(20, 20));
Run Code Online (Sandbox Code Playgroud)
之前:

后:

当我更改textField的文本并隐藏此面板中的某些组件时,此textField会继续调整大小.
此示例显示常量大小的文本字段.你能添加一个没有的SSCCE代码吗?

import java.awt.*;
import javax.swing.*;
class TextFieldSize {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JTextField smallField = new JTextField(5);
JTextField largeField = new JTextField(20);
JPanel gui = new JPanel(new FlowLayout());
gui.add( smallField );
gui.add( largeField );
JFrame f = new JFrame("Text Field Size");
f.add(gui);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.pack();
f.setLocationByPlatform(true);
f.setVisible(true);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12258 次 |
| 最近记录: |