我正在创建一个带有三个标签的GUI。我在每个标签上使用了setBounds方法,前两个标签位于我在参数中传递的x和y位置。但是,第三个标签只是坐在左边。
这是我的代码:
principleLabel = new JLabel();
principleLabel.setText("Principle");
principleLabel.setBounds(101, 10, 100, 50);
frame.getContentPane().add(principleLabel);
rateLabel = new JLabel();
rateLabel.setText("Rate (Percentage)");
rateLabel.setBounds(295, 10, 150, 50);
frame.getContentPane().add(rateLabel);
yearsLabel = new JLabel();
yearsLabel.setText("Years");
yearsLabel.setBounds(555, 10, 50, 50);
frame.getContentPane().add(yearsLabel);
我尝试将标签放在不同的顺序中,我看到它始终是最后写的表现奇怪的。
我将不胜感激任何帮助。谢谢。
可以找到使用绝对定位的指南here。
容器的布局管理器应设置为null。 (无法从显示的代码中看到您是否这样做。)setbounds方法用于容器中的所有组件。 (看起来你正在这样做。)需要调用容器的重绘方法。
如果您进行任何调整大小,或者组件不适合容器的范围,我不清楚究竟会发生什么。
如果我正在铺设东西,我可能会尝试在JavaFX中使用简单的路径,其中一个使用嵌套的HBox和VBox布局的组合。使用Swing已经有一段时间了,但我怀疑你可以在嵌套的JPanels中使用一堆Box布局来做到这一点。
例如,每个标签和文本控件对都是其自己的JPanel,具有垂直框布局,并且这三对将嵌套在具有水平框布局的JPanel中。 (流程可能也很好。)按钮行将在其自己的JPanel中。我想你应该已经明白了。