固定了JComboBox的长度,下拉菜单的内容显示不全!怎么改变下拉菜单的长度 我固定了JComboBox的长度,由于下拉菜单的内容很长所以显示不全!怎么改变下拉菜单的长度,或者用什么办法让它能显示出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 小弟的blog上有关于这个源码,可以去看下, 不知道是不是可以用在你的应用上.http://blog.csdn.net/bradwoo8621 下拉菜单的长度好象设置不了。解决方法 或者增加JComboBox的长度或者可以把JComboBox设置成可编辑的这样用户就可以得到那个超长的内容了 我现在用的方法是使用ToolTip,给每个下拉菜单选项加上ToolTip,超长的部分在ToolTip上就可以看到了 添加ToolTip,只需要给JComboBox添加一个Renderer,继承BasicComboBoxRenderer类,重写其方法public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) class CustomComboBoxRenderer extends BasicComboBoxRenderer { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if (isSelected) { setBackground(list.getSelectionBackground()); setForeground(list.getSelectionForeground()); if (-1 < index) { list.setToolTipText((value == null) ? null : value.toString()); } } else { setBackground(list.getBackground()); setForeground(list.getForeground()); } setFont(list.getFont()); setText((value == null) ? "" : value.toString()); return this; } }接着设置RenderercomboBox.setRenderer(new CustomComboBoxRenderer()); //下面这段代码在JDK1.4测试通过,或许对你有用package testtools;import java.awt.*;import javax.swing.*;import javax.swing.plaf.basic.*;public class TestJComboBoxJTable { public static void main(String[] args) { class myCombo extends JComboBox { public myCombo() { super(); setUI(new myComboUI()); } //end of default constructor class myComboUI extends BasicComboBoxUI { protected ComboPopup createPopup() { BasicComboPopup popup = new BasicComboPopup(comboBox) { protected JScrollPane createScroller() { return new JScrollPane(list, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants. HORIZONTAL_SCROLLBAR_AS_NEEDED); } //end of method createScroller }; return popup; } //end of method createPopup } //end of inner class myComboUI } JFrame aFrame = new JFrame(); myCombo JComboBox1 = new myCombo(); JComboBox1.setPreferredSize(new Dimension(20, 20)); JComboBox1.setMaximumSize(new Dimension(30, 20)); String[] aArr = { "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "BBAAAAAAAAAAA", "CCCCC", "DDDDDDDDDDDDD", "EEEEEEEEEEEE", "FFFFFFFFFFFFFFFFFFFFFFFFFFFF", "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "BBAAAAAAAAAAA", "CCCCC", "DDDDDDDDDDDDD", "EEEEEEEEEEEE", "FFFFFFFFFFFFFFFFFFFFFFFFFFFF", "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"}; for (int i = 0; i < aArr.length; ++i) JComboBox1.addItem(aArr[i]); aFrame.getContentPane().add(JComboBox1); aFrame.getContentPane().setSize(100, 100); aFrame.pack(); aFrame.setVisible(true); }} io流截取视频的问题 JXTA启动配置 信息怎么填写? 咨询个小问题 用java实现 链表 的一个问题,在线等…… 哪位兄弟能帮我把这段perl代码给我改成java的 很急的一个问题,但又很简单./请大家进来帮忙看一下是怎么搞的,谢谢了. Java中有没有比较好的进行数值计算的库 弹出式对话框的那个小红XX的问题 怎么在java窗口中添加一个可以显示文本的文档 啊 还是利用jdbc.odbc连接access数据库的问题,奇怪,请教大家!!! 好多问题,一块说了,吧. 帮我翻译一下,好么,我一直不能真确理解它!
http://blog.csdn.net/bradwoo8621
解决方法 或者增加JComboBox的长度
或者可以把JComboBox设置成可编辑的
这样用户就可以得到那个超长的内容了
继承BasicComboBoxRenderer类,重写其方法
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
class CustomComboBoxRenderer extends BasicComboBoxRenderer
{
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
boolean cellHasFocus)
{
if (isSelected)
{
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
if (-1 < index)
{
list.setToolTipText((value == null) ? null : value.toString());
}
}
else
{
setBackground(list.getBackground());
setForeground(list.getForeground());
}
setFont(list.getFont());
setText((value == null) ? "" : value.toString());
return this;
}
}接着设置RenderercomboBox.setRenderer(new CustomComboBoxRenderer());
package testtools;import java.awt.*;
import javax.swing.*;import javax.swing.plaf.basic.*;public class TestJComboBoxJTable { public static void main(String[] args) {
class myCombo
extends JComboBox {
public myCombo() {
super();
setUI(new myComboUI());
} //end of default constructor class myComboUI
extends BasicComboBoxUI {
protected ComboPopup createPopup() {
BasicComboPopup popup = new BasicComboPopup(comboBox) {
protected JScrollPane createScroller() {
return new JScrollPane(list,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.
HORIZONTAL_SCROLLBAR_AS_NEEDED);
} //end of method createScroller
};
return popup;
} //end of method createPopup
} //end of inner class myComboUI
}
JFrame aFrame = new JFrame();
myCombo JComboBox1 = new myCombo();
JComboBox1.setPreferredSize(new Dimension(20, 20));
JComboBox1.setMaximumSize(new Dimension(30, 20));
String[] aArr = {
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"BBAAAAAAAAAAA", "CCCCC", "DDDDDDDDDDDDD", "EEEEEEEEEEEE",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFF",
"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "BBAAAAAAAAAAA",
"CCCCC", "DDDDDDDDDDDDD", "EEEEEEEEEEEE",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFF",
"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"};
for (int i = 0; i < aArr.length; ++i)
JComboBox1.addItem(aArr[i]);
aFrame.getContentPane().add(JComboBox1);
aFrame.getContentPane().setSize(100, 100);
aFrame.pack();
aFrame.setVisible(true);
}
}