【问题标题】:How to add multiple Strings to JLabel without creating a new object如何在不创建新对象的情况下向 JLabel 添加多个字符串
【发布时间】: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


【解决方案1】:

您可以在 Swing 按钮、菜单按钮、标签等中使用 HTML 格式。设置文本时只需使用 html 标记。

【讨论】:

【解决方案2】:

听起来您正在寻找更好的控件。 JList 呢?

http://docs.oracle.com/javase/tutorial/uiswing/components/list.html

【讨论】:

  • 我现在正在使用 JList 如何在单击字符串列表时禁用蓝色框?
  • 设置一个忽略选择的ListCellRenderer。然而,这似乎是个坏主意。用户会期望对所选列表项进行更改。
猜你喜欢
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
相关资源
最近更新 更多