java JList 添加数据后,如何更新啊

javaJList动态添加了几条记录后,还是显示旧的怎么更新的?不好意思,我问的是javax.swing.jlist... java JList 动态添加了几条记录后,还是显示旧的

怎么更新的?
不好意思,我问的是javax.swing.jlist
展开
 我来答
yugi111
推荐于2018-04-13 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
  1. 更新的话,可以使用自身的validate方法;

  2. 也可以使用SwingUtiltis.updateComponentUI等方法解决。

    示例代码如下:


  3. import java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.*;
     
    public class LookAndFeelDemo2 extends JFrame {
     
        private JRadioButton radio1 = new JRadioButton("Metal");
        private JRadioButton radio2 = new JRadioButton("Windows");
        private JRadioButton radio3 = new JRadioButton("Motif");
        private JPanel panelNorth = new JPanel();
        private JPanel panelSouth = new JPanel();
        private JTextArea area = new JTextArea(6, 20);
        private JButton btn = new JButton("button");
        private JCheckBox chk = new JCheckBox("checkBox");
        private JComboBox cmbLookAndFeel = new JComboBox(new String[] { "Metal",
                "Widows", "Motif", "GTK" });
     
        public LookAndFeelDemo2(String title) {
            super(title);
            Container contentPane = this.getContentPane();
            ButtonGroup group = new ButtonGroup();
            group.add(radio1);
            group.add(radio2);
            group.add(radio3);
     
            panelNorth.add(radio1);
            panelNorth.add(radio2);
            panelNorth.add(radio3);
     
            panelSouth.add(btn);
            panelSouth.add(chk);
            panelSouth.add(cmbLookAndFeel);
     
            contentPane.add(panelNorth, BorderLayout.NORTH);
            contentPane.add(area, BorderLayout.CENTER);
            contentPane.add(panelSouth, BorderLayout.SOUTH);
            pack();
     
            setVisible(true);
            setSize(300, 400);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            // 监听Item事件
            radio1.addItemListener(new MyItemListener());
            radio2.addItemListener(new MyItemListener());
            radio3.addItemListener(new MyItemListener());
     
        }
     
        private class MyItemListener implements ItemListener {
     
            public void itemStateChanged(ItemEvent e) {
                // 取得点击按钮的名字
                String itemName = ((JRadioButton) e.getSource()).getText();
                changeLookAndFeel(itemName);
            }
        }
     
        // 设置外观的private类型方法
     
        private void changeLookAndFeel(String name) {
     
            String lookAndFeel = "";
            if (name.equals("Metal")) {
                lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
     
            } else if (name.equals("Windows")) {
                lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
            } else if (name.equals("Motif")) {
                lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
            }else{
                //取得默认的metal外观
                lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
            }
     
            try {
                UIManager.setLookAndFeel(lookAndFeel);
                // 运行时指定LookAndFeel,需要SwingUtilities.updateComponentTreeUI(Component
                // c)实现动态的更新
                SwingUtilities.updateComponentTreeUI(this);
                area.setText("当前外观类名:\n" + lookAndFeel);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
     
        }
     
        public static void main(String[] args) {
            new LookAndFeelDemo2("LookAndFeel");
        }
    }
huacuobin
2010-11-24 · 超过15用户采纳过TA的回答
知道答主
回答量:34
采纳率:100%
帮助的人:31.6万
展开全部
我不知道怎么更新列表,但是你可以重置一下整个列表。
不太清楚你的动态添加是什么意思。

我一般的做法是用一个ArrayList来维护Jlist里的数据。。
每次添加删除都是操作ArrayList里的数据,然后再
jList.setListData(list.toArray());刷新Jlist一下数据就好。。不知道你是不是想要这个结果。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2015-05-21 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
楼主,使用jlist.setModel(listModel)去更新数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
非我即仙
2010-11-24 · TA获得超过568个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:401万
展开全部
同huacuobin,重置setListData()。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式