
具体添加步骤如下:
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不支持编辑功能,很悲剧,实在不行可以用一列的JTable代替。或者是用布局做一个假的List代码如下,下面代码有个缺点就是必须控件要填满,否则不会有list效果。public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame() {
initComponents()
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane()
jPanel1 = new javax.swing.JPanel()
jComboBox1 = new javax.swing.JComboBox()
jComboBox2 = new javax.swing.JComboBox()
jComboBox3 = new javax.swing.JComboBox()
jComboBox4 = new javax.swing.JComboBox()
jComboBox5 = new javax.swing.JComboBox()
jComboBox6 = new javax.swing.JComboBox()
jComboBox7 = new javax.swing.JComboBox()
jComboBox8 = new javax.swing.JComboBox()
jComboBox9 = new javax.swing.JComboBox()
jComboBox10 = new javax.swing.JComboBox()
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE)
jScrollPane1.setName("jScrollPane1")// NOI18N
jPanel1.setName("jPanel1")// NOI18N
jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.PAGE_AXIS))
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox1.setName("jComboBox1")// NOI18N
jPanel1.add(jComboBox1)
jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox2.setName("jComboBox2")// NOI18N
jPanel1.add(jComboBox2)
jComboBox3.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox3.setName("jComboBox3")// NOI18N
jPanel1.add(jComboBox3)
jComboBox4.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox4.setName("jComboBox4")// NOI18N
jPanel1.add(jComboBox4)
jComboBox5.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox5.setName("jComboBox5")// NOI18N
jPanel1.add(jComboBox5)
jComboBox6.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox6.setName("jComboBox6")// NOI18N
jPanel1.add(jComboBox6)
jComboBox7.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox7.setName("jComboBox7")// NOI18N
jPanel1.add(jComboBox7)
jComboBox8.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox8.setName("jComboBox8")// NOI18N
jPanel1.add(jComboBox8)
jComboBox9.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox9.setName("jComboBox9")// NOI18N
jPanel1.add(jComboBox9)
jComboBox10.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }))
jComboBox10.setName("jComboBox10")// NOI18N
jPanel1.add(jComboBox10)
jScrollPane1.setViewportView(jPanel1)
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane())
getContentPane().setLayout(layout)
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(142, 142, 142)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(158, Short.MAX_VALUE))
)
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(103, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(97, 97, 97))
)
pack()
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true)
}
})
}
// Variables declaration - do not modify
private javax.swing.JComboBox jComboBox1
private javax.swing.JComboBox jComboBox10
private javax.swing.JComboBox jComboBox2
private javax.swing.JComboBox jComboBox3
private javax.swing.JComboBox jComboBox4
private javax.swing.JComboBox jComboBox5
private javax.swing.JComboBox jComboBox6
private javax.swing.JComboBox jComboBox7
private javax.swing.JComboBox jComboBox8
private javax.swing.JComboBox jComboBox9
private javax.swing.JPanel jPanel1
private javax.swing.JScrollPane jScrollPane1
// End of variables declaration
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)