我可以在JLabel中突出显示文本吗?

时间:2015-08-29 19:29:49

标签: java swing text jlabel

我有一个JLabel,里面有一些文字。这个JLabel占据了我的JFrame的整个底部。我将它的背景改为黄色,整个底部变黄。是否有任何方法可以使它看起来像JLabel中的文本,正在突出显示"只有文字的背景颜色为黄色,其余的颜色不同?我的JFrame的顶部是JPanel。

combo.addItemListener(new ItemChangeListener());
JPanel container = new JPanel();
container.setBackground(Color.BLUE);

response.setFont(new Font("Times new Roman", Font.BOLD, 40));
response.setHorizontalAlignment(SwingConstants.CENTER);

response.setBackground(Color.YELLOW);
response.setOpaque(true);
add(response , BorderLayout.CENTER);
container.add(selectone);
container.add(combo);
this.add(container, BorderLayout.NORTH);

2 个答案:

答案 0 :(得分:2)

有一种非常简单的方法 - 在标签文本中使用HTML。请注意,Swing解释了一个非常StringFormat的HTML,它没有达到今天的标准。

{{1}}

如今,应该使用样式表。但是如果你想这样做,你应该从Swing切换到JavaFX。

有关在Swing组件中使用HTML的更多详细信息,请参阅old version

答案 1 :(得分:2)

使用符合标签首选大小的包装面板:

JLabel label = new JLabel("...");
label.setOpaque( true );
label.setBackground(...);
JPanel wrapper = new JPanel();
wrapper.add( label );
frame.add(wrapper, BorderLayout.CENTER);

JPanel的默认布局是FlowLayout,它是水平居中对齐的。

如果您想同时进行水平和垂直居中,请在面板上使用GridBagLayout,并在向面板添加标签时使用默认GrigBagConstraints