包含HTML文本的JLabel使用可用空间自动换行。如果将JLabel添加到JSrollPane中,他必须将preferredSize设置为合适的值,否则它不会换行。所有这些都应该与使用LayoutManager的JPanel中的其他组件一起正常工作。因为我想要一个可调整大小的应用程序窗口,所以我扩展了JScrollPane以跟踪调整大小事件并动态更改与视口(viewport)宽度同步的大小。基本上它可以工作,但有时布局管理器对首选高度的计算是错误的(值太大或太小)。例如,穿过第一条线的红色边框的可见性表明高度的计算是错误的。我无法用单个包装JLabel重现失败。importjava.
代码是这样的:JTextFieldtxt=newJTextField();txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));但是文本字段忽略了我对setBorder的调用。没有任何变化。我要用JLabel替换它(例如)JLabeltxt=newJLabel();txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));我会看到红色边框。谁能告诉我为什么?或者更好地向我解释如何在JTextField中添加边框?
在大多数系统上,我的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));但是在某些系统上(不是我自己的,所以我真
我正在使用带有一些JLabel和JTextFields的JPanel作为JTree中的编辑器和渲染器。用户可以单击任何JTextField并修改文本。一切正常。我所缺少的是如何在用户输入时动态调整(增大)JTextField的大小。下面是一个说明问题的小示例程序。单击即“颜色”并输入一些其他字符。JTextField保持其大小,这是预期的,但我希望它增大和缩小以适应文本。我尝试了不同的布局管理器,计算了JTextField和JPanel的preferredSize,调用了invalidate()和JPanel以及Tree等等,但没有成功。有什么想法吗?importjava.awt.Co
我搜索了所有此类问题,但找不到解决方案。publicclassFormPanelextendsJPanel{privateJLabelnamelabel;privateJLabelocclabel;privateJTextFieldnametext;privateJTextFieldocctext;privateJButtonokButton;publicFormPanel(){Dimensiondim=getPreferredSize();dim.width=250;setPreferredSize(dim);namelabel=newJLabel("Name:");occlabel
我想在FileChooser中包含一个额外的(可选的)JTextField,允许用户在选择文件时填写它,而不是在他们做出选择后给他们一个额外的提示。有没有人尝试过类似的事情并找到了可行的解决方案?我的目标结果看起来像这样: 最佳答案 documented向JFileChooser添加控件的方法是通过setAccessory(JComponent)方法。JTextFieldfield=newJTextField("Hello,World");JPanelaccessory=newJPanel();accessory.setLayout
我在JLabel中导入了一张图片。Java中是否有任何内置函数可用于通过slider更改该图像的亮度和对比度? 最佳答案 你可以试试RescaleOp类(逐像素缩放)方法。 关于java-如何改变JLabel中图像的亮度?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7304895/
我正在为学习德语的人开发一个Java应用程序,我遇到了这种语言的特殊字符的问题。我想创建一个JTextField的子类,它将ALT+a解释为ä,将ALT+o解释为ö等等,同时对所有ASCII字符表现得像往常一样。到目前为止我的尝试:publicclassGermanTextFieldextendsJTextFieldimplementsKeyListener{publicGermanTextField(){init();}//otherconstructors...privatevoidinit(){addKeyListener(this);}publicvoidkeyPressed(
是否可以在另一个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