|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
[Java] posizionare componenti senza layout manager
devo fare un piccolo progetto per la scuola. Posso fare qualsiasi cosa l'importante è che usi le socket. Siccome pensavo di farlo con interfaccia grafica sto facendo un po' di prove. faccio setLayout(null) nel JFrame però se cerco di posizionare i componenti con setBounds() non c'è verso che si spostino.
qualcuno mi sa aiutare? al limite, c'è qualche layoutManager semplice da usare, adatto anche per progetti piccoli? grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
io di solito inserisco all'interno del JFrame un JPanel impostato con setLayout(null)
esempio: Codice:
/* mainPanel */
JPanel mainPanel = new JPanel();
mainPanel.setLayout(null);
/* JFrame */
/*....
*/
this.getContentPane().add(mainPanel);
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
guarda io ho questo codice
Codice:
package socketproject;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
public class Gui extends JFrame
{
private static final long serialVersionUID = 4667623015432940473L;
private JPanel panel;
private ButtonDemo button;
public Gui()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
System.err.println( "Errore di creazione Look&Feel" );
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600, 400);
this.setLocation(300, 200);
this.setTitle("Provvisorio");
this.setLayout(null);
panel = new JPanel();
panel.setBackground(Color.LIGHT_GRAY);
button = new ButtonDemo("cliccami");
button.addActionListener(button);
panel.add(button);
this.add(panel);
this.setContentPane(panel);
}
}
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
modifica in questo modo:
Codice:
package socketproject;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
public class Gui extends JFrame
{
private static final long serialVersionUID = 4667623015432940473L;
private JPanel panel;
private ButtonDemo button;
public Gui()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
System.err.println( "Errore di creazione Look&Feel" );
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600, 400);
this.setLocation(300, 200);
this.setTitle("Provvisorio");
//this.setLayout(null); //Va fatto sul panel
panel = new JPanel();
panel.setBackground(Color.LIGHT_GRAY);
panel.setLayout(null);
button = new ButtonDemo("cliccami");
button.setBounds(...); //Da sistemare
button.addActionListener(button);
this.getContentPane().add(panel);
panel.add(button);
}
}
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
guarda, fatto così:
Codice:
package socketproject;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
public class Gui extends JFrame
{
private static final long serialVersionUID = 4667623015432940473L;
private JPanel panel;
private ButtonDemo button;
public Gui()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
System.err.println( "Errore di creazione Look&Feel" );
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600, 400);
this.setLocation(300, 200);
this.setTitle("Provvisorio");
panel = new JPanel();
panel.setLayout(null);
panel.setBackground(Color.LIGHT_GRAY);
button = new ButtonDemo("cliccami");
button.setBounds(400, 300, button.getWidth(), button.getHeight());
button.addActionListener(button);
this.getContentPane().add(panel);
panel.add(button);
}
}
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
qui devi passare le coordinate x, y (che non dipendono dalla posizione della finestra) e la dimensione del pulsante width e height
Codice:
button.setBounds(400, 300, button.getWidth(), button.getHeight()); Codice:
button.setBounds(400, 300, 80, 30); |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
hai ragione
semplicemente ButtonDemo è una mia classe che deriva da JButton. io mettevo button.width e button.height perchè pensavo non avesse senso dare una dimensione e un'altezza quando comunque è fissa.. grazie comunque |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Usa un IDE se vuoi realizzare un'interfaccia grafica e non hai il tempo di studiarne il layout.
Impostare il layout a null può sembrare una soluzione ma complica enormemente le cose. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
il problema è che è un progetto scolastico. e il prof lo gradirebbe tutto fatto a scrittura di codice.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:40.




















