我正在開發一個程序。它的GUI有兩個主要部分,JFrame的左邊和JFrame的右邊。 (目前右半部分是空白的,因爲我還沒有開始工作)。關於GUI的佈局
左側部分看起來不太好。所有的按鈕和文本框都被拉伸。我希望他們擁有標準按鈕的高度,與本網站上的按鈕相似。 (你知道,標準的Windows按鈕)。
我該怎麼做? (我不想簡單地打包()整個事情,因爲窗口的右半部分會有一個大的方形JPanel,所以pack()ing意味着窗口仍然是方形的而左半邊的按鈕仍然會被拉長和拉下)。
這裏有一個畫面:
下面是到目前爲止的代碼:
import javax.swing.*;
import java.awt.*;
import java.awt.Event.*;
public class GUI extends JFrame {
JButton rect,oval,tri,free,addPoint;
JLabel xLabel,yLabel;
JTextField xTextField,yTextField;
JPanel leftPanel,rightPanel,optionsPanel,pointsPanel;
public GUI(){
initUI();
}
private void initUI(){
setLayout(new GridLayout(1,2,5,5));
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("Graphics Generator");
setSize(500,500);
rect = new JButton("Rectangle");
oval = new JButton("Oval");
tri = new JButton("Triangle");
free = new JButton("Free Shape");
addPoint = new JButton("Add point");
xLabel = new JLabel("X: ");
yLabel = new JLabel("Y: ");
xTextField = new JTextField(2);
yTextField = new JTextField(2);
leftPanel = new JPanel();
rightPanel = new JPanel();
optionsPanel = new JPanel();
pointsPanel = new JPanel();
add(leftPanel);
add(rightPanel);
leftPanel.setLayout(new GridLayout(2,1,5,5));
leftPanel.add(optionsPanel);
optionsPanel.setLayout(new GridLayout(1,4,2,2));
optionsPanel.add(rect);
optionsPanel.add(oval);
optionsPanel.add(tri);
optionsPanel.add(free);
leftPanel.add(pointsPanel);
pointsPanel.setLayout(new GridLayout(1,5,2,2));
pointsPanel.add(xLabel);
pointsPanel.add(xTextField);
pointsPanel.add(yLabel);
pointsPanel.add(yTextField);
pointsPanel.add(addPoint);
setVisible(true);
}
public static void main(String[] args) {
GUI gui = new GUI();
}
}
問題也許是你所選擇的佈局。嘗試使用不同的佈局並檢查結果? – ujvl
你應該添加一個草圖,說明你想要完成的gui的樣子。只是一個線框素描,沒有什麼奇特的。 – Paaske