Ragazzi dovrei creare un'interfaccia grafica come quella dell'allegato che ho postato, qualcuno potrebbe darmi una mano?
Ragazzi dovrei creare un'interfaccia grafica come quella dell'allegato che ho postato, qualcuno potrebbe darmi una mano?
A grandi linee potresti: mettere il pulsante nella parte SOUTH del BorderLayout predefinito del content-pane del JFrame. Poi nella parte CENTER (o NORTH .. dipende se vuoi che occupi tutto oppure no) sempre del content-pane puoi mettere un JPanel che ha un BoxLayout "verticale" (i componenti sono incolonnati) in cui disponi label, textfield, label, ecc...
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Dovrei fare una piccola premessa, sono stata assente ad alcune lezioni e molte cose le ho saltate. Ora ti mando il codice e lo screen del mio panel (è una cagata)
codice:public class Equazioni extends JFrame { private JLabel lA; private JTextField txtA; private JLabel lB; private JTextField txtB; private JLabel lC; private JTextField txtC; private JLabel lR; //private JTextField txtR; //private JTextArea taStampa; private JButton BtRis; private Container c; private JPanel p1,p2; public Equazioni(){ super("equazioni"); setBounds(60,60,270,420); lA=new JLabel("A(Coefficiente termine secondo grado)",SwingConstants.LEFT); txtA=new JTextField(23); lB=new JLabel("B(Coefficiente termine primo grado",SwingConstants.LEFT); txtB=new JTextField(23); lC=new JLabel("Termine noto",SwingConstants.LEFT); txtC=new JTextField(23); lR=new JLabel("?",SwingConstants.CENTER); BtRis=new JButton("Risultato"); //BtRis.addActionListener(new Ascolta()); //taStampa=new JTextArea(10,15); //taStampa.setEditable(false); p1=new JPanel(); //p1.setBackground(Color.LIGHT_GRAY); p1.setLayout(new GridLayout(6,1,15,15)); p1.add(lA); p1.add(txtA); p1.add(lB); p1.add(txtB); p1.add(lC); p1.add(txtC); p2=new JPanel(); //p2.setBackground(Color.LIGHT_GRAY); p2.setLayout(new GridLayout(2,1,15,15)); p2.add(lR); p2.add(BtRis); c=getContentPane(); c.setLayout(new FlowLayout()); //c.setBackground(Color.LIGHT_GRAY); c.add(p1); c.add(p2); } //ps. conta anche che il "?" deve essere una jlabel }
b2.jpg
Ultima modifica di LeleFT; 09-02-2016 a 13:14 Motivo: Aggiunti i tag CODE
Il tuo codice tecnicamente non è sbagliato. Chiaramente è un po' diverso dallo screenshot iniziale.
La questione principale è che il content-pane ha un FlowLayout e quindi i due pannelli possono "fluire" su due file (come è così con le dimensioni del frame che hai dato) ma possono anche stare sulla stessa fila, che avviene quando allarghi un po' la finestra. Non credo fosse quello che si voleva.
Prova a rivedere il codice con le mie indicazioni. Il pulsante BtRis puoi metterlo in SOUTH del BorderLayout (predefinito del content-pane). In NORTH puoi mettere il tuo pannello p1. Va anche bene con GridLayout (come alternativa al BoxLayout verticale che dicevo io prima).
La label lR puoi metterla in CENTER, così può stare centrata nello spazio che rimane.
Fai qualche prova e se hai dubbi, chiedi pure.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet