创建表格模型,然后创建表格。
简单举例一下:
实例化一个表格模型对象,
CustomTableModel model=new CustomTableModel(0,columnNames.length,columnNames,dataType)再创建表格对象
JTable table=new JTable(model)设置相关属性
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)等等
实现方法1、初始化
首先添加JScrollPane的实例jScrollPane1,DefaultListModel
实例model1,然后使用model1生成JList的实例。在对话框合适的位置添加jScrollPane1,调整到合适的大小,然后在jScrollPane1上增加jList1.这样带有滚动条的列表框就添加完成了。
初始化一个Vector实例用来存储选择的列表元素。由于选择的元素具有不确定性,所以使用Vector这种存储空间可以动态变化的数据结构。Vector初始化实例时不能指定初始化长度,所以增加一个整形变量指示Vector中列表中对象的个数。
2、添加和删除列表元素
列表框中的元素添加和删除是通过model1的addElement方法和removeElement方法实现的。通过列表框的属性selectionMode可以设置列表框单选,单个间断选择和多个间断选择。Vector中存储的对象是和选择的元素相对应的,对象的添加和删除是通过addElement方法和removeElement方法实现的。
3、获得选择元素
在点击“确定”按钮以后,需要将Vector实例中的对象转化成为需要的数据类型。
实例解析
现以图1所示为例对具体实现方法进行描述。由图1中左面列表框中选择可用元素,选择方式设为多个间断选择,由于其他两种方式相对简单,实现方法可在这个实例的基础上修改得到。选定元素之后,点击“>>”按钮,选择的元素就会在右面的列表框显示出来。如果多选或者错选,可在右面的列表框中选定元素后点击“<<”按钮移去选定的元素。
以上实现的功能代码如下
图1 列表框示例
具体程序实现方法如下。
import javax.swing.JPanel
import javax.swing.JFrame
import javax.swing.JScrollPane
import java.awt.Rectangle
import java.util.Vector
import javax.swing.JList
import javax.swing.JButton
import javax.swing.DefaultListModel
public class Llist extends JFrame {
private static final long serialVersionUID = 1L
private JPanel jContentPane = null
private JScrollPane jScrollPane = null
private JScrollPane jScrollPane1 = null
private JList jList = null
private JList jList1 = null
private JButton jButton = null
private JButton jButton1 = null
private DefaultListModel model
private DefaultListModel model2
/**
* This is the default constructor
*/
private Vector vc=new Vector() // @jve:decl-index=0:
private int num
public Llist() {
super()
initialize()
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(393, 263)
this.setContentPane(getJContentPane())
this.setTitle("JFrame")
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel()
jContentPane.setLayout(null)
jContentPane.add(getJScrollPane(), null)
jContentPane.add(getJScrollPane1(), null)
jContentPane.add(getJButton(), null)
jContentPane.add(getJButton1(), null)
jContentPane.add(getJButton2(), null)
jContentPane.add(getJButton3(), null)
}
return jContentPane
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane()
jScrollPane.setBounds(new Rectangle(22, 23, 110, 152))
jScrollPane.setViewportView(getJList())
}
return jScrollPane
}
/**
* This method initializes jScrollPane1
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane1() {
if (jScrollPane1 == null) {
jScrollPane1 = new JScrollPane()
jScrollPane1.setBounds(new Rectangle(223, 24, 116, 150))
jScrollPane1.setViewportView(getJList1())
}
return jScrollPane1
}
/**
* This method initializes jList
*
* @return javax.swing.JList
*/
String[]
a={"Element1","Element2","Element3","Element4","Element5","Element6","Element7","Element8","Element9","Element10",}
private JButton jButton2 = null
private JButton jButton3 = null
private JList getJList() {
if (jList == null) {
jList = new JList()
model=new DefaultListModel()
jList.setModel(model)
for(int i=0i<a.lengthi++)
{
model.addElement(a[i])
}
}
return jList
}
/**
* This method initializes jList1
*
* @return javax.swing.JList
*/
private JList getJList1() {
if (jList1 == null) {
jList1 = new JList()
model2=new DefaultListModel()
jList1.setModel(model2)
}
return jList1
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton()
jButton.setBounds(new Rectangle(149, 52, 56, 29))
jButton.setText(">>")
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//System.out.println("actionPerformed()")// TODO Auto-generated Event
stub actionPerformed()
Object[] items=jList.getSelectedValues()
for(int i=0i<items.lengthi++)//从左边选中元素,往右边的列表中添加元素
{
model2.addElement(items[i])
num=num+1
vc.setSize(num)
}
}
})
}
return jButton
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton()
jButton1.setBounds(new Rectangle(145, 117, 65, 31))
jButton1.setText("<<")
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//System.out.println("actionPerformed()")// TODO Auto-generated Event
stub actionPerformed()
for(int i=0i<jList1.getSelectedValues().lengthi++)
{
model2.removeElement(jList1.getSelectedValue())//删除选中右边的列表元素
num=num-1
vc.setSize(num)
}
}
})
}
return jButton1
}
/**
* This method initializes jButton2
*
* @return javax.swing.JButton
*/
private JButton getJButton2() {
if (jButton2 == null) {
jButton2 = new JButton()
jButton2.setBounds(new Rectangle(82, 193, 63, 27))
jButton2.setText("确定")
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
}
})
}
return jButton2
}
/**
* This method initializes jButton3
*
* @return javax.swing.JButton
*/
private JButton getJButton3() {
if (jButton3 == null) {
jButton3 = new JButton()
jButton3.setBounds(new Rectangle(196, 195, 66, 23))
jButton3.setText("取消")
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//System.out.println("actionPerformed()")// TODO Auto-generated Event
stub actionPerformed()
model2.removeAllElements()//删除右边列表框的所有元素
}
})
}
return jButton3
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)