我想用Java Swing創建以下GUI。如何在Java Swing中創建以下GUI?
因爲我不跟的Java Swing足夠的經驗,我不知道如何準確地重新創建GUI。
我使用網格佈局,看起來像這樣嘗試:
我試過其他佈局管理,但由於缺乏經驗,我,我不能得到任何東西,甚至遠程類似我想要的GUI實現。
我可能不得不使用GridBagLayout,但我已經嘗試過了,根本無法完成任何事情。 我不確定如何正確使用GridBagLayout,特別是因爲所需的柱子數量有差異(2,2和3)。
下面是用於創建第二GUI代碼:
import java.awt.*;
import javax.swing.*;
public class GUITest extends JFrame {
public GUITest() {
super("Testing Title");
Container pane = getContentPane();
pane.setLayout(new GridLayout(3,1));
pane.add(getHeader());
pane.add(getTextArea());
pane.add(getButtonPanel());
}
public JComponent getHeader() {
JPanel labelPanel = new JPanel();
labelPanel.setLayout(new GridLayout(1,2));
labelPanel.setSize(getPreferredSize());
JLabel labelLocal = new JLabel("Left value: ", JLabel.CENTER);
JLabel labelDB = new JLabel("Right value: ", JLabel.CENTER);
labelPanel.add(labelLocal);
labelPanel.add(labelDB);
return labelPanel;
}
public JComponent getTextArea() {
JPanel textPanel = new JPanel();
textPanel.setLayout(new GridLayout(1,2,5,0));
JTextArea testTextArea = new JTextArea();
testTextArea.setEditable(false);
JScrollPane sp1 = new JScrollPane(testTextArea);
JTextArea testTextArea2 = new JTextArea();
JScrollPane sp2 = new JScrollPane(testTextArea2);
testTextArea2.setEditable(false);
testTextArea.setText("Hello Hello Hello\nTesting!\ntesterino\ntesteroni");
testTextArea2.setText("Hello Hello Hello\nTesting!\ntest\nABC123\ncdef123\nhijk123");
textPanel.add(sp1);
textPanel.add(sp2);
return textPanel;
}
public JComponent getButtonPanel() {
JPanel inner = new JPanel();
inner.setLayout(new FlowLayout((FlowLayout.CENTER),0,100));
inner.add(new JButton("Do something"));
inner.add(new JButton("Do something different"));
inner.add(new JButton("Do something even more different"));
return inner;
}
public static void main(String[] args) {
GUITest e = new GUITest();
e.setSize(700, 500);
e.setVisible(true);
e.setResizable(false);
e.setDefaultCloseOperation(EXIT_ON_CLOSE);
e.setLocationRelativeTo(null);
}
}
我很感激任何形式的支持!
你可以使用'MigLayout'。這很容易 –
NetBeans IDE的GUI編輯器是我的方法。因爲與業務邏輯相比,所有代碼都不是很有趣。此外,屬性和這樣的嘗試。 –
@JoopEggen我不明白你想說什麼....這就像有兩件事情,但你專注於一個 – taclight