java中,我将JList添加到Frame布局中,但是,刚刚开始初始化的时候,JList

java中,我将JList添加到Frame布局中,但是,刚刚开始初始化的时候,JList里面我没有添加数据,于是它就不显示出来,后来添加了数据它才显示出来。有没有什么办法... java中,我将JList添加到Frame布局中,但是,刚刚开始初始化的时候,JList里面我没有添加数据,于是它就不显示出来,后来添加了数据它才显示出来。有没有什么办法让JList即使没有数据也可以显示出来??
没有人回答么?急
展开
 我来答
紫薇参星
科技发烧友

2016-08-15 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3601万
展开全部

JList里面没有添加数据,也可以在Frame布局中显示出来,只不过有时小一些,如果你把JList里面放一个由多个空格组成的字符串,就可以让JList几乎正常显示,我给你个Java语言的例子,你看看吧.

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JList;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class MyListTest extends Frame implements ListSelectionListener{
    String [] str ={"  "};
    JList list = new JList(str);
    MyListTest(){
     this.setSize(200, 200);
     this.setLayout(new BorderLayout());
        this.add(list,"Center");
        list.addListSelectionListener(this);
        this.addWindowListener(new WindowAdapter(){
         public void windowClosing(WindowEvent e){
          System.exit(0);
         }
        });
        this.setVisible(true);
    }
    public static void main(String [] args){
         new MyListTest();
    }
    @Override
    public void valueChanged(ListSelectionEvent e) {
     if(e.getSource()==list) 
     if(e.getValueIsAdjusting()==true){
      System.out.println(list.getSelectedValue());
     }     
    }
}
追问
我也想过这样,我觉得不是很妥当。😁
追答
你把有一个空字符串的JList放在Frame上,有数据的时候再填充它,填充它之前都会removeAll();
删除JList的全部选项,不会影响你的程序,JList的大小也与填充数据后的大小差不多,所以,一般开发都会这么做,除非你没有数据时,显示"no data"或者"请选择"在JList上.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式