JComboBox里怎么加一个JSeperator呀,大虾帮忙.... JComboBox里怎么加一个JSeperator呀,大虾帮忙....就好比菜单里面的分隔线... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有必要吗?~`那你还不如用PopMenu呢~ 按我目前对源代码的了解,这个会有些难度JComboBox是由几个部分组合而成的[ComboBoxEditor][ArrowButton][---------------------------][ JList item1 ][ JList item2 ][ ][---------------------------]下拉列表其实是一个JList来的,上面好像没有提供分隔栏的方法,而且这个下拉列表外部不可以访问,修改。解决:1.加入一些“--------”这样的item作为分隔2.用JPopupMenu 代替下载列表框个人建议用第二个,我就是觉得JComboBox又丑又陋,极为讨厌。你细看windows或者eclipse,ps这些软件,发现它们的下拉列表框像是直接用PopupMenu的 楼上说对了一点,下拉表是一个JList,用橡皮图章以绘制 JList 中单元格的组件就行。贴上代码:package gmdbv2;import java.awt.Component;import javax.swing.DefaultComboBoxModel;import javax.swing.DefaultListCellRenderer;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JList;import javax.swing.JSeparator;public class test extends JFrame{JComboBox choose; DefaultComboBoxModel model; test(){ model=new DefaultComboBoxModel(new String[]{"First"," ","Second","Third","Forth"}); choose=new JComboBox(); choose.setModel(model); choose.setRenderer(new DefaultListCellRenderer(){ public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {Component result=super.getListCellRendererComponent(list,value,index,isSelected,cellHasFocus); if(value.toString().equals(" ")){ System.out.println("已经顺利进入IF块里"); return new JSeparator(); } return result; } }); this.getContentPane().add(choose); this.setVisible(true); this.setLocation(300,300); pack(); }public static void main(String args[]){ new test();}}已经测试过,没问题,按照此方法还可以往JLIST里添加JButon,JLabel...等等Component 顶楼上~我也想到这个招,被你给抢先了。btw,建议使用"-"替换" ",与菜单一致,这样二次开发也方便,^_^ if(value.toString().equals(" ")){ System.out.println("已经顺利进入IF块里"); return new JSeparator(); }这个办法不错,呵呵...顶一下但存在的问题是通过ComboBox.getSeletectedItem 会不会选择到分隔栏了?这样就会引起很多问题,也不好使用 感谢ganhaitian() ,可你的还是存在问题..可以被选中,这个使我不想要的...还能improve 么??谢谢你哈 根据中序跟后序建立一个二叉树,并以后序输出之(java) 各位大虾:怎么统计给定文件中每个字母中出现的频率!!! 关于导入包的问题 一段代码目的是打印2点成一条直线,出了点问题 关于Java中调用C程序的问题!急!在线等! 求助,怎样写一个登录,用户名与密码为登录本机器windows的用户名与密码 这种人能找到程序员的工作吗?(迷途羔羊) 算法!大家写写看谁的最快? Jbuilder中有没有发送电子邮件的组件啊,怎么来给etang的邮箱发送邮件呢? eclipse无法启动? 用eclipse的朋友请进 JLIST为什么屏蔽它的JScrollPane, 不让它滚动 关于POI生成EXCEL问题
[---------------------------]
[ JList item1 ]
[ JList item2 ]
[ ]
[---------------------------]
下拉列表其实是一个JList来的,上面好像没有提供分隔栏的方法,而且这个下拉列表外部不可以访问,修改。
解决:
1.加入一些“--------”这样的item作为分隔
2.用JPopupMenu 代替下载列表框个人建议用第二个,我就是觉得JComboBox又丑又陋,极为讨厌。
你细看windows或者eclipse,ps这些软件,发现它们的下拉列表框像是直接用PopupMenu的
import java.awt.Component;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JSeparator;public class test extends JFrame
{JComboBox choose;
DefaultComboBoxModel model; test(){
model=new DefaultComboBoxModel(new String[]{"First"," ","Second","Third","Forth"});
choose=new JComboBox();
choose.setModel(model);
choose.setRenderer(new DefaultListCellRenderer(){
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{Component result=super.getListCellRendererComponent(list,value,index,isSelected,cellHasFocus);
if(value.toString().equals(" ")){
System.out.println("已经顺利进入IF块里");
return new JSeparator();
}
return result;
} });
this.getContentPane().add(choose);
this.setVisible(true);
this.setLocation(300,300);
pack();
}
public static void main(String args[])
{
new test();
}
}
已经测试过,没问题,按照此方法还可以往JLIST里添加JButon,JLabel...等等Component
我也想到这个招,被你给抢先了。
btw,建议使用"-"替换" ",与菜单一致,这样二次开发也方便,^_^
System.out.println("已经顺利进入IF块里");
return new JSeparator();
}这个办法不错,呵呵...顶一下
但存在的问题是通过ComboBox.getSeletectedItem 会不会选择到分隔栏了?这样就会引起很多问题,也不好使用
还能improve 么??谢谢你哈