永发信息网

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

答案:4  悬赏:50  手机版
解决时间 2021-03-05 09:31
java JList 添加数据后,如何更新啊
最佳答案
更新的话,可以使用自身的validate方法;
也可以使用SwingUtiltis.updateComponentUI等方法解决。
示例代码如下:


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("当前外观类名:
" + lookAndFeel);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
 
    }
 
    public static void main(String[] args) {
        new LookAndFeelDemo2("LookAndFeel");
    }
}
全部回答
同huacuobin,重置setListData()。
楼主,使用jlist.setModel(listModel)去更新数据
我不知道怎么更新列表,但是你可以重置一下整个列表。
不太清楚你的动态添加是什么意思。
我一般的做法是用一个ArrayList来维护Jlist里的数据。。
每次添加删除都是操作ArrayList里的数据,然后再
jList.setListData(list.toArray());刷新Jlist一下数据就好。。不知道你是不是想要这个结果。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在家好还是在外地好????
【万事功到自然成的上一句】万事功到自然成的
年龄满了父母不给户口本登记怎么办
95年的生孩子了,现在要结婚了正常吗我96年的
安徽合肥有去萧县的高铁吗?我想今天回萧县,
我国基金发行价格不允许()发行
不锈钢厨房设备有哪些优点
冒菜底料怎么炒?
有没在微众银行上班的
wii的平衡器怎么连接主机
孤独是救赎是不是情侣网名
两个随机变量都服从某一分布(如二项分布),
公共物品具有消费上的非排他性特征,使理性的
安顺街地址有知道的么?有点事想过去
网购超劲能高容量商务电池真如评价说的那么好
推荐资讯
泽宇教育地址在什么地方,我要处理点事!
冬天穿鞋露脚踝有说明坏处
利用擦痕如何判断断层类型?
直接用氯气做消毒剂可能会造成哪些问题?
天津居住是空港经济区好点,还是橡树湾那边好
外滩22号宴会厅怎么去啊,有知道地址的么
擦汗表情是什么意思
检察院办案期限
有关基因工程的成果及应用的说法不正确的是①
应急照明线接在接触器上吗
巴西龟总是漂在水上,刚刚买回家的,很小啊,
对对子红花对什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?