【发布时间】:2013-04-25 21:13:37
【问题描述】:
如何在不使用 mouseListener 创建新对象的情况下在 JLabel 中添加多个字符串,并且我希望它在块中显示字符串列表,但它始终显示为内联。
我的问题是每次我有一个字符串我需要创建一个新的 JLabel 对象? 顺便说一句,我有一个包含很多名称的数据库,创建很多 JLabel 会很困难。
这是图片 Click HERE
这里是我当前的对象代码 我有一个获取名称字符串然后添加到 JPanel 的数据库。
x = new JLabel("name1");
x1 = new JLabel("name2");
x.setFont(new Font("calibri",Font.BOLD,20));
x.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent arg0) {
}
@Override
public void mouseEntered(MouseEvent arg0) {
x.setForeground(Color.blue);
}
@Override
public void mouseExited(MouseEvent arg0) {
x.setForeground(Color.BLACK);
}
@Override
public void mousePressed(MouseEvent arg0) {
x.setForeground(Color.RED);
}
@Override
public void mouseReleased(MouseEvent a) {
x.setForeground(Color.blue);
}});
add(x);
add(x1);
【问题讨论】:
-
查看 JList,或将 JLabel 设置为 html,并附加
+您的新名称 -
你能先得到所有的名字,然后用换行符连接它们,设置为一个jlabel吗?
-
但是当我用 mouselistener 点击它们时,我应该得到一个不同的名字。
-
“但是当我用 mouselistener 点击它们时,我应该得到一个不同的名字。” 除非你想花很多时间摸索字体指标和换行符,否则我'd 建议使用 JList 或 JTable 代替,它会做你想做的一切,而且更简单
-
我现在正在使用 JList 如何在单击字符串列表时禁用蓝色框?
标签: java swing jlabel foreground