我已经通过 Netbeans Java 创建了一个 GUI,但是每当我最大化 GUI 窗口时,文本框就会错位。我使用 Netbeans 拖放功能来创建 GUI。我想知道为什么每当我最大化 GUI 时文本框就会错位
2 回答
我理解你的问题,因为我已经遇到了同样的问题,我对你的建议是你可以使用 netbeans 的拖放,但在使用它之前先制作一个面板,然后在该面板中放下你所有的东西,然后使用 JFrame 组件调整大小功能只需将面板放在您想要放置的任何位置,例如,如果您想将其居中对齐。
//if your class is extending JFrame
public static int getWIDTH(){
return WIDTH;
}
public static int getHEIGHT() {
return HEIGHT;
}
private void formComponentResized(java.awt.event.ComponentEvent evt) {
// this is for setting panel in the middle of the JFrame horizontally
int a = getWIDTH();
int b = Panel.getWidth();
a = a/2;
b = b/2;
int centerForX = b - a;
// This is for setting the panel in the middle vertically
int x = getHEIGHT();
int y = Panel.getHeight();
x = x/2;
y = y/2;
int centerForY = x - y;
// Making a 'Point' object and then setting location of the Panel.
Point p = new Point(centerForX , centerForY);
Panel.setLocation(p);
}
一些关键点:
1) getWIDTH 和 getHEIGHT 方法将由 netbeans 在所有方法之外编写,但在类中 getwidth 和 getheight 并按 ctrl + 空格并按 enter 将分别生成 getWIDTH 和 getHEIGHT 方法。
2) formComponentResized 方法将由netbeans 生成,只需转到设计选项卡,然后在导航器中,它主要位于左下角,右键单击JFrame,然后转到事件,然后是组件,然后是componentResized。
3)如果您有任何问题,请不要犹豫,因为我对这个主题有详细的了解。
这是布局的问题。
阅读使用布局:http ://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
如果您打算使用 Netbean 的 GUI 构建器,请完成教程。它将帮助您更好地了解如何使用构建器。https://netbeans.org/kb/docs/java/quickstart-gui.html