具体添加步骤如下:
1、首先要实例化一个JList对象
2、其次是实例一个ArrayList对象,并向其中添加一些数据
3、再次是将ArrayList对象转换为Object数组,调用其toArray方法即可。
4、最后就是向JList中添加ArrayList了,调用setListData方法将ArrayList转换好的Object数组设置进去即可。
JList是Java GUI编程中的一个重要的列表组件,可以方便地显示对象数组或对象 Vector,不过也仅限于图形界面编程中使用,在web开发或者其他应用开发中,基本上是用不到的。
更新的话,可以使用自身的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("当前外观类名:\n" + lookAndFeel)
} catch (Exception ex) {
ex.printStackTrace()
}
}
public static void main(String[] args) {
new LookAndFeelDemo2("LookAndFeel")
}
}
JList里面没有添加数据,也可以在Frame布局中显示出来,只不过有时小一些,如果你把JList里面放一个由多个空格组成的字符串,就可以让JList几乎正常显示,我给你个Java语言的例子,你看看吧.
import java.awt.BorderLayoutimport 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())
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)