包含HTML文本的JLabel使用可用空间自动换行。如果将JLabel添加到JSrollPane中,他必须将preferredSize设置为合适的值,否则它不会换行。所有这些都应该与使用LayoutManager的JPanel中的其他组件一起正常工作。因为我想要一个可调整大小的应用程序窗口,所以我扩展了JScrollPane以跟踪调整大小事件并动态更改与视口(viewport)宽度同步的大小。基本上它可以工作,但有时布局管理器对首选高度的计算是错误的(值太大或太小)。例如,穿过第一条线的红色边框的可见性表明高度的计算是错误的。我无法用单个包装JLabel重现失败。importjava.
最初我有一张甲板图像和图像下方的文本“Deck”,看起来不错publicclassGuiTutextendsJPanel{privateGridBagConstraintsc=newGridBagConstraints();privateJLabeldeckLabel=newJLabel();publicGuiTut(){setLayout(newGridBagLayout());try{deck=ImageIO.read(newFile("resources/images/deck.jpg"));}catch(Exceptione){}c.gridx=0;c.gridy=0;JLab
在大多数系统上,我的JLabel中的内容都能正常显示。它也以一种方式驻留,它应该总是足够大以显示其内容文本,因为我基本上是这样做的:label.setText(text);label.setFont(newFont(fontName,0,12));intwidth=label.getFontMetrics(label.getFont()).stringWidth(text);intheight=21;//thisshouldalwaysbeenoughlabel.setBounds(newRectangle(x,y,width,height));但是在某些系统上(不是我自己的,所以我真
我表格中一列的单元格是HTML字符串。HTML用于提供一些颜色指示。通常列的宽度足以包含整个字符串。但是当它不够时,字符串会在单词边界上被很好地切割。这是期望的行为。使用默认的单元格渲染器。我注意到偶尔,与表格的一些交互会触发渲染器包装字符串。据我了解,包装HTML字符串是JLabel的正常行为。从中DefaultTableCellRenderer派生。不清楚的是为什么这种行为如此不一致以及是什么触发了它的偏差。JLabel是什么原因来回跳跃,好像它在不断地重新测量?有关示例,请参见附图。要解决这个问题,我可以添加到HTML字符串以防止换行,或使用更复杂的渲染器来渲染彩色字符串。但我想
我在JLabel中导入了一张图片。Java中是否有任何内置函数可用于通过slider更改该图像的亮度和对比度? 最佳答案 你可以试试RescaleOp类(逐像素缩放)方法。 关于java-如何改变JLabel中图像的亮度?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7304895/
是否可以在另一个JLabel之上添加一个JLabel?谢谢。 最佳答案 简短的回答是肯定的,因为JLabel是Container,所以它可以接受Component(JLabel是Component的子类)通过使用add添加到JLabel方法:JLabeloutsideLabel=newJLabel("Hello");JLabelinsideLabel=newJLabel("World");outsideLabel.add(insideLabel);在上面的代码中,insideLabel被添加到outsideLabel。但是,从视觉上
我有一个进度对话框窗口,其中包含3个JComponents:JLabel、JProgressBar、JButton,它们在不同线程的应用程序的不同部分用作默认对话框窗口。因此,当我尝试更改标签的值时,它不会清除其下方的背景,它只是在旧文本上绘制新文本。包装类不会覆盖任何方法,它只是将方法调用委托(delegate)给它包含的组件。代码如下:publicvoidsetNote(Stringnote){this.note=note;SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){label.setText(ProgressD
我需要根据用于调整容器大小的比例因子调整多个JLabel的字体大小。为此,我将每个JLabel的字体设置为null,以便它们采用容器的字体。它有效,但它也会产生奇怪的结果。具体来说,文本似乎“滞后于”容器,有时甚至被截断。我想避免这种行为。知道怎么做吗?模拟行为的示例代码:importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.GridBagConstraints;import
我有一个带有文本的JLabel,我想向其添加另一段文本,但后者的颜色与前者不同(例如红色)。我试过:statusLabel.setText(statusLabel.getText()+""+message+"");但它不起作用。它只显示HTML标签但不呈现它们。有什么建议么?是否可以更改JLabel中某些文本的颜色? 最佳答案 试试这个:setText("Sometextsometextinred");或者对于你的情况,你可以像这样构建字符串:statusLabel.setText(String.format("%s%s",stat
我有一个登录表单,用户可以在其中输入他的凭据进行登录。我有一个JLabel用于显示告诉用户用户名不能为空的文本。当文本字段为空时,用户单击登录按钮后会显示此标签。我希望当用户开始在文本字段中输入时,带有信息的标签应该消失。我如何实现这种行为?代码如下:publicclassJTextFiledDemo{privateJFrameframe;JTextFiledDemo(){frame=newJFrame();frame.setVisible(true);frame.setSize(300,300);frame.setLayout(newGridLayout(4,1));frame.se