Java 如何使用添加/删除按钮在两个jlists之间移动项目
我的任务是创建一个具有两个Java 如何使用添加/删除按钮在两个jlists之间移动项目,java,jbutton,jlist,Java,Jbutton,Jlist,我的任务是创建一个具有两个JLists(左和右)的GUI,并能够使用添加和删除按钮在两个列表之间移动项目 一旦添加到右侧列表中,该项将不再显示在左侧列表中。如何使这些按钮执行正确的操作 请参阅下面我的代码: JList<String> leftList = new JList<String>(); leftList.setModel(new AbstractListModel<String>() {
JLists
(左和右)的GUI,并能够使用添加和删除按钮在两个列表之间移动项目
一旦添加到右侧列表中,该项将不再显示在左侧列表中。如何使这些按钮执行正确的操作
请参阅下面我的代码:
JList<String> leftList = new JList<String>();
leftList.setModel(new AbstractListModel<String>() {
String[] values = new String[] {"Car", "Truck", "Boat", "Plane"};
public int getSize() {
return values.length;
}
public String getElementAt(int index) {
return values[index];
}
});
leftList.setBounds(0, 0, 196, 539);
frame.getContentPane().add(leftList);
JList<String>rightList = new JList<String>();
rightList.setBounds(285, 0, 196, 539);
frame.getContentPane().add(rightList);
//this will create the add and remove buttons
JButton btnAddButton = new JButton(">>");
btnAddButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
}
});
btnAddButton.setBounds(218, 247, 49, 34);
frame.getContentPane().add(btnAddButton);
JButton btnRemoveButton = new JButton("<<");
btnRemoveButton.setBounds(218, 292, 49, 34);
frame.getContentPane().add(btnRemoveButton);
}
JList leftList=new JList();
setModel(新的AbstractListModel(){
字符串[]值=新字符串[]{“汽车”、“卡车”、“船”、“飞机”};
公共int getSize(){
返回值.length;
}
公共字符串getElementAt(int索引){
返回值[索引];
}
});
leftList.setBounds(0,0196539);
frame.getContentPane().add(leftList);
JListrightList=新JList();
右列表.立根(285,0196539);
frame.getContentPane().add(rightList);
//这将创建添加和删除按钮
JButton btnAddButton=新JButton(“>>”);
addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件){
}
});
btnAddButton.setBounds(218247 49 34);
frame.getContentPane().add(btnAddButton);
JButton btnRemoveButton=新JButton(“签出列表演示
准则:
您不应该使用局部变量,因为一旦方法结束,它们都将消失,而让它们返回的唯一方法是通过
((JComponent)frame.getContentPane().getComponent(n)).getComponent(n)
我指的是您的“GUI”和
您根本不应该使用“String[]values”,因为数组的大小是固定的,所以您不能修改它,请使用ArrayList
在这种特殊情况下,您根本不应该使用数组或列表,请继续阅读
在开发GUI时,您不应该过于精确,因为图形优化机制最终会使其崩溃,因此您应该尝试使用“DefaultListModel”,而不是使用“AbstractListModel”
(老实说,我试着用“AbstractListModel”来做你的例子,在“leftListModel”中,getElementAt()方法只被调用了一次,并且每隔一次重新验证()和重新绘制()都不会给出任何结果)
由于我们现在使用的是DefaultListModel,因此不需要任何数组,而是“addElement()”考虑分别询问定位问题和行动响应问题,并对您的研究进行一点概述。
String[] values;