
实现方法
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 javaxswingJPanel;
import javaxswingJFrame;
import javaxswingJScrollPane;
import javaawtRectangle;
import javautilVector;
import javaxswingJList;
import javaxswingJButton;
import javaxswingDefaultListModel;
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() {
thissetSize(393, 263);
thissetContentPane(getJContentPane());
thissetTitle("JFrame");
}
/
This method initializes jContentPane
@return javaxswingJPanel
/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPanesetLayout(null);
jContentPaneadd(getJScrollPane(), null);
jContentPaneadd(getJScrollPane1(), null);
jContentPaneadd(getJButton(), null);
jContentPaneadd(getJButton1(), null);
jContentPaneadd(getJButton2(), null);
jContentPaneadd(getJButton3(), null);
}
return jContentPane;
}
/
This method initializes jScrollPane
@return javaxswingJScrollPane
/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPanesetBounds(new Rectangle(22, 23, 110, 152));
jScrollPanesetViewportView(getJList());
}
return jScrollPane;
}
/
This method initializes jScrollPane1
@return javaxswingJScrollPane
/
private JScrollPane getJScrollPane1() {
if (jScrollPane1 == null) {
jScrollPane1 = new JScrollPane();
jScrollPane1setBounds(new Rectangle(223, 24, 116, 150));
jScrollPane1setViewportView(getJList1());
}
return jScrollPane1;
}
/
This method initializes jList
@return javaxswingJList
/
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();
jListsetModel(model);
for(int i=0;i<alength;i++)
{
modeladdElement(a[i]);
}
}
return jList;
}
/
This method initializes jList1
@return javaxswingJList
/
private JList getJList1() {
if (jList1 == null) {
jList1 = new JList();
model2=new DefaultListModel();
jList1setModel(model2);
}
return jList1;
}
/
This method initializes jButton
@return javaxswingJButton
/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButtonsetBounds(new Rectangle(149, 52, 56, 29));
jButtonsetText(">>");
jButtonaddActionListener(new javaawteventActionListener() {
public void actionPerformed(javaawteventActionEvent e) {
//Systemoutprintln("actionPerformed()"); // TODO Auto-generated Event
stub actionPerformed()
Object[] items=jListgetSelectedValues();
for(int i=0;i<itemslength;i++)//从左边选中元素,往右边的列表中添加元素
{
model2addElement(items[i]);
num=num+1;
vcsetSize(num);
}
}
});
}
return jButton;
}
/
This method initializes jButton1
@return javaxswingJButton
/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1setBounds(new Rectangle(145, 117, 65, 31));
jButton1setText("<<");
jButton1addActionListener(new javaawteventActionListener() {
public void actionPerformed(javaawteventActionEvent e) {
//Systemoutprintln("actionPerformed()"); // TODO Auto-generated Event
stub actionPerformed()
for(int i=0;i<jList1getSelectedValues()length;i++)
{
model2removeElement(jList1getSelectedValue());//删除选中右边的列表元素
num=num-1;
vcsetSize(num);
}
}
});
}
return jButton1;
}
/
This method initializes jButton2
@return javaxswingJButton
/
private JButton getJButton2() {
if (jButton2 == null) {
jButton2 = new JButton();
jButton2setBounds(new Rectangle(82, 193, 63, 27));
jButton2setText("确定");
jButton2addActionListener(new javaawteventActionListener() {
public void actionPerformed(javaawteventActionEvent e) {
}
});
}
return jButton2;
}
/
This method initializes jButton3
@return javaxswingJButton
/
private JButton getJButton3() {
if (jButton3 == null) {
jButton3 = new JButton();
jButton3setBounds(new Rectangle(196, 195, 66, 23));
jButton3setText("取消");
jButton3addActionListener(new javaawteventActionListener() {
public void actionPerformed(javaawteventActionEvent e) {
//Systemoutprintln("actionPerformed()"); // TODO Auto-generated Event
stub actionPerformed()
model2removeAllElements();//删除右边列表框的所有元素
}
});
}
return jButton3;
}
}
import javaawt;
import javaawtevent;
import javaxswing;
public class JlistD {
public JlistD(String title) {
JFrame frame = new JFrame(title);
setLAF(); // 设置风格
framegetContentPane()add(new ListPanel());
init(frame);
}
private void setLAF() {
try {
UIManagersetLookAndFeel(UIManagergetSystemLookAndFeelClassName());
} catch (Exception ignore) {
}
}
public void init(JFrame f) {
fsetAlwaysOnTop(true);
fpack();
fsetDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);
fsetLocationRelativeTo(null);
fsetVisible(true);
}
public static void main(String[] args) {
new JlistD("JListD");
}
}
class ListPanel extends JPanel {
private DefaultListModel model;
private JList list;
public ListPanel() {
Dimension d = new Dimension(300, 300);
thissetPreferredSize(d);
thissetLayout(new BorderLayout());
addList();
addButtons();
}
private void addList() {
model = new DefaultListModel();
list = new JList(model);
listsetFixedCellHeight(20);
listsetPreferredSize(new Dimension(300, 40));
thisadd(list, BorderLayoutNORTH);
}
private void addButtons() {
JButton limit = new JButton("limit");
JButton reset = new JButton("reset");
JButton clear = new JButton("clear");
JPanel panel = new JPanel();
limitaddActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
listsetPreferredSize(new Dimension(300, 100));
listrevalidate();
}
});
resetaddActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (modelgetSize() == 0) {
String[] items = { "A", "B", "C", "D", "E", "F", "G", "H", "I" };
for (int i = 0; i < itemslength; i++) {
modeladd(i, items[i]);
}
}
listsetPreferredSize(new Dimension(300, 180));
listrevalidate();
}
});
clearaddActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
modelremoveAllElements();
listsetPreferredSize(new Dimension(300, 40));
listrevalidate();
}
});
paneladd(limit);
paneladd(reset);
paneladd(clear);
thisadd(panel, BorderLayoutSOUTH);
}
}
以上就是关于Java的程序中,如何删除jList中选定的项(jList.getSelectedValue())全部的内容,包括:Java的程序中,如何删除jList中选定的项(jList.getSelectedValue())、我用java做了个swing界面,怎么实现播放MP3格式的背景音乐、Java如何将一个界面表格里面的内容点击确定按钮添加到另外一个界面表格中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)