带有 JComboBox 的 JTextField 无法正常工作
JTextField with JComboBox is not working properly
我希望 JTextField
在用户 select "Extra" 出现在 JComboBox
列表中时显示,否则隐藏。但是当用户 selecting "Extra" 时 JTextField 没有出现,但是如果我缩小 window 并再次放大它就会出现。这样做之后它可以正常工作,只是第一次没有出现。为什么会这样?有什么解决办法吗?
这是我的代码:
getCmbJtocsv_C_8().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
{
input3 = (String)adaptor.getCmbJtocsv_C_8().getSelectedItem();
adaptor.getTxtJtocsv_C_8().setVisible(false);
if(input3.equals("extra")){
adaptor.getTxtJtocsv_C_8().setVisible(true);
}
}
我已经更改了字符串比较,但我仍然得到相同的结果。
默认情况下,Swing 组件的大小为 (0, 0)。 size/location 组件的 size/location 由布局管理器在框架打包或可见时确定。
所以我猜想,由于您从不可见的文本字段开始,因此其父面板的大小不包括文本字段。当您调整框架大小时,文本字段会出现,因为它的大小和面板的大小都会重新计算。
现在已经计算出文本字段的大小,因此您可以根据需要切换可见性。
如果这没有帮助,那么 post 证明问题的 SSCCE。那就是创建一个只有组合框和文本字段的框架来演示问题。将来所有的问题都应该包含 SSCCE,因为我们无法根据几行代码猜测您的应用程序的上下文。
我希望 JTextField
在用户 select "Extra" 出现在 JComboBox
列表中时显示,否则隐藏。但是当用户 selecting "Extra" 时 JTextField 没有出现,但是如果我缩小 window 并再次放大它就会出现。这样做之后它可以正常工作,只是第一次没有出现。为什么会这样?有什么解决办法吗?
这是我的代码:
getCmbJtocsv_C_8().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
{
input3 = (String)adaptor.getCmbJtocsv_C_8().getSelectedItem();
adaptor.getTxtJtocsv_C_8().setVisible(false);
if(input3.equals("extra")){
adaptor.getTxtJtocsv_C_8().setVisible(true);
}
}
我已经更改了字符串比较,但我仍然得到相同的结果。
默认情况下,Swing 组件的大小为 (0, 0)。 size/location 组件的 size/location 由布局管理器在框架打包或可见时确定。
所以我猜想,由于您从不可见的文本字段开始,因此其父面板的大小不包括文本字段。当您调整框架大小时,文本字段会出现,因为它的大小和面板的大小都会重新计算。
现在已经计算出文本字段的大小,因此您可以根据需要切换可见性。
如果这没有帮助,那么 post 证明问题的 SSCCE。那就是创建一个只有组合框和文本字段的框架来演示问题。将来所有的问题都应该包含 SSCCE,因为我们无法根据几行代码猜测您的应用程序的上下文。