rt
用JComboBox可以实现么,下拉列表中复选后,选中的画面上排在一起显示
或者是swing的其他组件有这个功能,因为下拉显示的数据不定,而且比较多,所以用JList的话
画面布局不方便,而且实际操作的时候也不方便,
请各位大大指点指点
用JComboBox可以实现么,下拉列表中复选后,选中的画面上排在一起显示
或者是swing的其他组件有这个功能,因为下拉显示的数据不定,而且比较多,所以用JList的话
画面布局不方便,而且实际操作的时候也不方便,
请各位大大指点指点
解决方案 »
- java程序
- 【求助】我也不知道如何写这个标题
- JAVA这条路到底行不行啊?
- JAVA 继承中异构问题
- swt如何动态调用composite?100分!进来就有!谢谢!
- 请问在java中怎样向sql语句传递参数,就如delphi中一样?
- 高分求免费JAVA书籍,急急。。。。。。。。。
- 菜鸟请教各位大虾,是一个关于reload 与submit 的问题
- 如何控制Frame中的组件大小,当用鼠标拖动改变frame大小时
- How to study!
- 一个非常奇怪的在网络环境下的objectinputstream\objectoutputstrem问题
- 如何实现这个函数??输入为一个类文件A、以及A中一个方法的名字f(f返回一个对象),返回结果是f的执行结果..
而不是要对画面进行变更。
所以想能不能通过修改一下 JComboBox的Renderer方法这种类似的实现,从而从外观上面看,画面是没有发生变化
//按住Ctrl可以多选。
import java.awt.BorderLayout;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.ListSelectionModel;
import javax.swing.SpringLayout;public class MutiComboBox extends JFrame
{
private JList list;
private JComboBox comboBox;
private SpringLayout springLayout;
/**
* Launch the application
* @param args
*/
public static void main(String args[])
{
try
{
MutiComboBox frame = new MutiComboBox();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
} /**
* Create the frame
*/
public MutiComboBox()
{
super();
springLayout = new SpringLayout();
getContentPane().setLayout(springLayout);
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); comboBox = new JComboBox();
comboBox.setModel(new DefaultComboBoxModel(new String[] {"画面布局不方便", "而且实际操作的", "时候也不方便"}));
getContentPane().add(comboBox);
springLayout.putConstraint(SpringLayout.SOUTH, comboBox, 85, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.EAST, comboBox, 245, SpringLayout.WEST, getContentPane());
springLayout.putConstraint(SpringLayout.NORTH, comboBox, 60, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.WEST, comboBox, 80, SpringLayout.WEST, getContentPane()); String[] data = {"one", "two", "three", "four"};
list = new JList(data);
list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
getContentPane().add(list);
springLayout.putConstraint(SpringLayout.SOUTH, list, 310, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.EAST, list, 0, SpringLayout.EAST, comboBox);
springLayout.putConstraint(SpringLayout.NORTH, list, 190, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.WEST, list, 0, SpringLayout.WEST, comboBox);
//
}
}
是从db取出的数据,有几十条的数据,如果用JList的话,画面布局的时候会十分难看
现在再看能不能重写底层,
思路是:
JComboBox点击后,出来的是popmenu其实就是一个JList,所以对于这个JList,让他可以实现复选功能,然后在重写 JComboBox 在用户选好后显示的问题对于换一个popmenu感觉应该可以,但是接下来的功能,能不能实现,可行性如何,确实没有把握,
还请各位指点指点
设置JList的CellRenderer,为checkbox形式的,类适于树节点的checkbox选择
楼主的问题解决没?
有更好的方法贴出来哈