Ciao,
vorrei creare un programmino desktop da usare a lavoro. In particolare l'interfaccia che vorrei realizzare è la seguente (la riporto in maniera schematica):
Le prime due righe solo dei file chooser, la terza serve a selezionare un path e infine c'è un bottone che fa partire l'esecuzione.codice:JLabel JTextfield JButton JLabel JTextfield JButton JLabel JTextfield JButton
Non avendo mai progettato interfacce con i layout Java sono in difficoltà e vorrei un consiglio circa la progettazione.
Ho provato ad utilizzare un BorderLayout (per il bottone in basso) e un GridLayout (per le prime tre righe), ma come da comportamento di default Java "estende" graficamente tutti i componenti all'intero spazio a disposizione...
Devo quindi usare un JPanel per ciascun elemento della griglia con un Layout diverso (ad esempio un FlowLayout), ma tutti gli elementi vengono predisposti al centro del pannello.
A questo punto mi chiedo se mi sta sfuggendo qualcosa...mi sembra tutto un pò troppo complicato per un'interfaccia così semplice...
Sapete darmi qualche consiglio?
Riporto il codice che ho scritto finora.
Grazie mille per l'aiuto,
Francesco
codice:package main; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingUtilities; public class GUI extends JFrame { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { GUI g = new GUI(); } }); } public GUI() { super("Sample program"); this.setSize(600, 400); this.setLocationRelativeTo(null); this.setLayout(new BorderLayout()); // Set the central panel JPanel centralPanel = new JPanel(); centralPanel.setLayout(new GridLayout(3, 3)); // First row JLabel templateLabel = new JLabel("Template:"); JTextField templateText = new JTextField(); JButton templateButton = new JButton("Select File"); // Second row JLabel sourceLabel = new JLabel("Source:"); JTextField sourceText = new JTextField(); JButton sourceButton = new JButton("Select File"); // Third row JLabel destinationLabel = new JLabel("Destination:"); JTextField destinationText = new JTextField("Text1"); centralPanel.add(templateLabel); centralPanel.add(templateText); centralPanel.add(templateButton); centralPanel.add(sourceLabel); centralPanel.add(sourceText); centralPanel.add(sourceButton); centralPanel.add(destinationLabel); centralPanel.add(destinationText); this.add(centralPanel, BorderLayout.CENTER); // Set the bottom panel for the 'Execute' button JPanel bottomPanel = new JPanel(); bottomPanel.setLayout(new FlowLayout()); JButton executeButton = new JButton("Execute"); bottomPanel.add(executeButton); this.add(bottomPanel, BorderLayout.SOUTH); this.setVisible(true); } }

Rispondi quotando