已有258人关注
关于swing窗体内组件不可见的问题
发表在Java答疑区 2017-04-17
是否精华
版块置顶:

以下为正常情况的代码:

import java.awt.*;

import javax.swing.*;

public class Test extends JFrame{


public Test(){        //构造方法

JLabel label=new JLabel("666"); //创建标签

Container container=getContentPane(); //窗体转容器

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);     //关闭方式

                setSize(200,150); //设置窗体大小

JComboBox<String> colorchoice =new JComboBox<>(new MyComboBox()); //创建下拉列表框

                setVisible(true); //可见

container.add(BorderLayout.NORTH,colorchoice);

container.add(BorderLayout.SOUTH,label);


}


public static void main(String[] args) {

// TODO 自动生成的方法存根

new Test();

}


}

class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String>{  //自定义下拉列框

String selecteditem=null;

String[] choice={"蓝","红","绿"};

public String getElementAt(int index){ //重写的方法

return choice[index];

}

public int getSize(){ //重写的方法

return choice.length;

}

public void setSelectedItem(Object item){ //重写的方法

selecteditem=(String)item;

}

public Object getSelectedItem(){ //重写的方法

return selecteditem;

}

}


以上代码没问题,运行出来结果如下:

但是只要将setVisible(true); 放在创建下拉列表框语句

JComboBox<String> colorchoice =new JComboBox<>(new MyComboBox()); 

后面,就会出现下面情况

                


为什么会这样?谢谢

分享到:
精彩评论 2
David
学分:914 LV7
TA的每日心情
最后的冲刺
2017-07-15 10:46:08
2017-04-18
沙发

Java程序执行的顺序是自上而下的:只有让窗体可见了,窗体中的组件才能可见。

浅滩海贝_1490925544
学分:34 LV2
2017-04-20
板凳

David 发表于2017-04-18 18:14

Java程序执行的顺序是自上而下的:只有让窗体可见了,窗体中的组件才能可见。

好的谢谢

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照