JList or JTable? 想做一个类似于多选列表(铺排开的)之间互相转移item的功能
rt
每个item是有几列数据的(它是一个object,我想显示它的几个属性):整一个东西就像个二维表格,所以现在考虑用JTable了。但好像觉得用一个List更符合一点。
item数目可能比较大,需要有滚动条的。
或者说有更好的选择么?可以选择jGoodies中的东西。
最后的功能就是(比方说我用了a,b这两个list):返回一个从a跑到b+从b跑到a的所有object的List。
暂时给50分,视答案加分:200还不够的话另开帖子~ 希望大家帮忙,谢谢!
不求代码,根据这功能需求分析一下优劣最好,直接给出令我满意的选择也欢迎!
------解决方案--------------------给个JList的例子看看
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class ComboBoxes extends JApplet {
private String[] description = { "Ebullient ", "Obtuse ", "Recalcitrant ",
"Brilliant ", "Somnescent ", "Timorous ", "Florid ", "Putrescent " };
private JTextField t = new JTextField(15);
private JComboBox c = new JComboBox();
private JButton b = new JButton( "Add items ");
private JPasswordField jp = new JPasswordField(10);
String[] items = { "足球 ", "蓝球 ", "网球 ", "拖拉机 "};
JList list = new JList(items);
private int count = 0;
public void init() {
for (int i = 0; i < 4; i++){
c.addItem(description[count++]);
}
t.setEditable(false);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (count < description.length)
c.addItem(description[count++]);
}
});
c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
t.setText( "index: " + c.getSelectedIndex() + " "
+ ((JComboBox) e.getSource()).getSelectedItem());
}
});
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(t);
cp.add(list);
cp.add(jp);
cp.add(c);
cp.add(b);
}
public static void main(String[] args) {
Console.run(new ComboBoxes(), 200, 125);
}
}
------解决方案--------------------你需要的功能是很典型的TreeTable功能,标准swing中没有TreeTable这个控件,不过可以自己写,sun网站也有例子说明如何写treetable,不过是5、6年前的东西了,可能会比较旧;新的swinglabs中swingx项目也有treetable这个控件,不同版本的称呼还不同,不过最新版的应该是叫TreeTable或JNTreeTable,用法和JTable和JTree类似,自己去看看:http://swinglabs.org/
------解决方案--------------------替楼主顶
自己先研究下,有结果了再冒泡...