Voglio creare la seguente GUI con Java Swing.Come posso creare la seguente GUI in Java Swing?
Dal momento che non ho abbastanza esperienza con Java Swing, non sono sicuro di come ricreare esattamente questo GUI.
Ho provato con GridLayout che assomiglia a questo:
Ho provato altri LayoutManagers, ma a causa della mia inesperienza, non ho potuto ottenere qualcosa di simile anche lontanamente l'interfaccia grafica che voglio raggiungere.
Probabilmente devo usare GridBagLayout ma l'ho provato e semplicemente non è stato in grado di ottenere nulla. Non sono sicuro di come utilizzare esattamente GridBagLayout, soprattutto perché c'è una varianza della quantità di colonne necessarie (2, 2 e 3).
Ecco il codice utilizzato per la creazione del secondo 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);
}
}
Sono grato per qualsiasi tipo di supporto!
Si potrebbe utilizzare 'MigLayout'. È facile –
L'editor della GUI dell'IDE NetBeans sarebbe il mio approccio. Come tutto quel codice non è davvero interessante rispetto alla logica di business. Anche le proprietà e tali sono presentati per provare. –
@JoopEggen Non capisco cosa stai cercando di dire .... è come quando ci sono due cose ma ti concentri su uno – taclight