Java Swing - JLabel 位置
我在设置 Jlabel 位置时遇到问题。
我将内容窗格设置为某个 JPanel,我创建并尝试添加我的 JLabel。
JLabel mainTitle = new JLabel("SomeApp");
mainTitle.setFont(new Font("Arial",2 , 28));
mainTitle.setBounds(0,0, 115, 130);
getContentPane().add(mainTitle);
我希望我的 JPanel 将位于我的应用程序的左上角,而我得到的是顶部中心的“SomeApp”。 (而不是左上角)。
顺便说一句,我尝试添加 JButton,但我无法更改 JButton 的宽度、高度、x、y。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用布局通常是一个更好的主意,因为它们允许动态调整组件的大小。以下是使用 BorderLayout 的方法:
如果您想在标签右侧添加一些内容,您可以使用它自己的布局创建一个附加面板:
以下是一些开始使用布局的有用链接:
http://download.oracle.com/docs/cd/E17409_01 /javase/tutorial/uiswing/layout/visual.html
http://download.oracle.com/文档/cd/E17409_01/javase/tutorial/uiswing/layout/using.html
Using layouts is usually a better idea since they allow for dynamic resizing of components. Here's how you'd do it with a BorderLayout:
If you want to add something to the right of the label you could create an additionnal panel with it's own layout :
Here are some usefull links to get started with layouts:
http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/layout/visual.html
http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/layout/using.html
特定小部件在其容器中的最终位置取决于它所使用的布局管理器。布局管理器确定如何调整小部件的大小和排列小部件以使它们适当地适合。显然,内容窗格的默认布局决定顶部中心是放置 JLabel 的最佳位置。
如果您不想使用布局管理器而只是自己放置所有内容(顺便说一句,这通常不是布局的最佳方式),请添加:
Where a particular widget ends up in its container depends on the layout manager that it's using. The layout manager determines how to resize and arrange the widgets to make them fit appropriately. Obviously, the default layout for the content pane decided that the top center was the best place to put the JLabel.
If you want to get to not use a layout manager and just place everything yourself (which generally isn't the best way to lay things out btw), then add:
Swing 使用 布局管理器来放置组件。
您必须了解它们的工作原理才能有效地使用它们。您可以将布局管理器设置为 null,并自行进行布局,但不推荐,因为您必须每次都跟踪新组件,并在窗口移动、缩小等时自行执行布局计算。
布局管理器是一开始有点难以理解。
您的窗口可能是这样的:
使用此代码:
Swing uses Layout Managers to place the components.
You have to understand how they work to use them effectively. You can set the layout manager to null, and do the layout your self, but is not recommendable because you'll have to keep track of new components each time, and perform layout computation your self when the window moves shrink etc.
Layout managers are a bit hard to grasp at first.
Your windows could be like this:
Using this code: