Originariamente inviato da SHARKSEAL
Ma usando Netbeans per disegnare la finestra... dovrei mettere il jpanel in "others component" altrimenti mi si sovrappongono e mi si sballa tutta la frame???
Non so che dirti, primo perché NetBeans non lo conosco e secondo perché normalmente tendo a pensare in termini di cosa offre AWT/Swing .... non cosa e dove cliccare su un IDE per disegnare qualcosa della interfaccia.
Comunque prova questo esempio basilare:
codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestFrame extends JFrame {
private JToggleButton button1;
private JToggleButton button2;
private JPanel panel1;
private JPanel panel2;
public TestFrame() {
super("Test");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
button1 = new JToggleButton("Pannello 1");
button2 = new JToggleButton("Pannello 2");
panel1 = new JPanel();
panel1.setBorder(BorderFactory.createTitledBorder("Il pannello 1"));
panel1.setPreferredSize(new Dimension(300, 100));
panel1.setMaximumSize(new Dimension(300, 100));
panel1.setVisible(false);
panel1.setAlignmentX(0.0f);
panel2 = new JPanel();
panel2.setBorder(BorderFactory.createTitledBorder("Il pannello 2"));
panel2.setPreferredSize(new Dimension(200, 140));
panel2.setMaximumSize(new Dimension(200, 140));
panel2.setVisible(false);
panel2.setAlignmentX(0.0f);
Container contentPane = getContentPane();
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
contentPane.add(button1);
contentPane.add(button2);
contentPane.add(panel1);
contentPane.add(panel2);
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel1.setVisible(button1.isSelected());
pack(); // ridimensiona il frame alla "giusta" dimensione preferita
}
});
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel2.setVisible(button2.isSelected());
pack(); // ridimensiona il frame alla "giusta" dimensione preferita
}
});
pack(); // ridimensiona il frame alla "giusta" dimensione preferita
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestFrame().setVisible(true);
}
});
}
}
Seleziona in qualunque combinazione i due toggle button e vedi cosa succede per i pannelli e la finestra.
Originariamente inviato da SHARKSEAL
Io uso Netbeans ...ma sporca molto il codice sopprattutto quando si usa l'ambiente visuale per le jframe ... avresti qualcosa di meglio da consigliarmi???
Io una risposta l'avrei .... ma forse non ti piacerà: scrivere "a mano" il codice per la creazione/gestione della interfaccia utente.