我在JPanel中有多个JLabel。无论何时我在一个文本中更改文本,都会导致JPanel中的其他JLabel移动。如何将它们锁定到位?如何在每次更改同一JPanel中的其他JLabel文本时停止JLabel在JPanel内部的更改?
-2
A
回答
-1
该方法真的取决于您如何定位标签以及您使用的LayoutManager。
默认情况下,JLabel会根据标签文本和字体大小计算其大小。如果您正在更改文本,那么JLabel的大小也会发生变化,从而使布局管理器重新定位其他标签。
下面是一个使用FlowLayout和硬设置JLabel首选大小的示例,以便在文本更改时不会更改。其他布局管理器可以选择忽略首选大小:
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new FlowLayout());
JLabel l = new JLabel("text1");
l.setPreferredSize(new Dimension(50, (int)l.getPreferredSize().getHeight()));
frame.getContentPane().add(l);
frame.getContentPane().add(new JLabel("text2"));
frame.getContentPane().add(new JLabel("text3"));
在这里,如果你改变文本l
它不会转向其他2个标签。
+0
请参阅[我是否应避免使用Java Swing中的set(Preferred | Maximum | Minimum)Size方法?](http://stackoverflow.com/q/7229226/418556)(是) –
+0
对不起,但我不同意这条规则。特别是在这个例子中,用户希望JLabel不要改变它的首选大小。在实践中,没有人会遵循100%的规则。 – tsolakp
相关问题
- 1. 如何在文本更改时阻止JLabel更改其大小?
- 2. 在JPanel上更改位置JLabel重绘
- 3. 在可拖动的jPanel中更改jLabel的文本
- 4. JPanel上的JLabel在其他方法的setText不更新时
- 5. 如何更新JPanel中的JLabel?
- 6. JLabel的文本移出JPanel
- 7. 在JPanel顶部添加JLabel
- 8. Java - 在JPanel内部访问JLabel
- 9. 在ActionEvent中更改JLabel的文本
- 10. JLabel on JPanel pause
- 11. 如何更改JFrame内部的JPanel?
- 12. JLabel在JPanel中不截断
- 13. 在JScrollable JPanel中添加JLabel
- 14. Java更改JLabel文本更改JLabel位置
- 15. JLabel更改文本事件
- 16. 如何在JPanel上的JLabel上“绘制”?
- 17. 如何在JLabel中插入JPanel?
- 18. JLabel的定位到JPanel中
- 19. jpanel中的jlabel搜索栏
- 20. JPanel中的JLabel对齐
- 21. 在JPanel上添加JLabel - BorderLayout
- 22. 在JPanel周围移动JLabel
- 23. 在JPanel上定位JLabel
- 24. JLabel在Jpanel上不可见
- 25. JButton在JPanel重新验证后将两次setText改写为JLabel()
- 26. JLabel到JPanel,拖放
- 27. 更改一个JLabel文本的同时,JButton的监听工作
- 28. Java - 更改JLabel
- 29. 更改JLabel的ImageIcon
- 30. 如何动态更改JLabel的内容
欢迎来到Stack Overflow,因为你的问题不清楚,[mcve]可能会澄清你的意思。但是我发现你没有参加[巡回演出],所以仔细阅读并学习[问],然后通过编辑你的问题发布MCVE的代码。这会减少混淆和更多更好的答案,如果您不遵循上述建议,您的问题可能会被关闭和/或删除,并且您在本网站中被禁止询问新问题 – Frakcool
除了MCVE建议的@ Frakcool以最小尺寸提供ASCII图形或简单的*图形*图形布局,并且可调整大小,具有更多的宽度和高度。 –