当前位置: 代码迷 >> J2SE >> JList or JTable? 想做一个类似于多选列表(铺排开的)其间互相转移item的功能
  详细解决方案

JList or JTable? 想做一个类似于多选列表(铺排开的)其间互相转移item的功能

热度:509   发布时间:2016-04-24 16:38:20.0
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/
------解决方案--------------------
替楼主顶
自己先研究下,有结果了再冒泡...
  相关解决方案