Java swing; Comment pour faire basculer le panneau de visibilité?
j'ai fait ce code pour naviguer au gré de panel1 et séance 2
avec des boutons.
(bouton1 et bouton2) mais quand je lance mon code de la monture reste vide.
Quelqu'un peut-il m'expliquer ce que je fais mal et comment je peux l'accomplir
basculement entre panel1 et séance 2-de cette façon? En commençant par panel1 première
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
public class togglepanel {
public static void main(String[] args) {
final JFrame frame = new JFrame();
final JPanel panel1 = new JPanel();
final JPanel panel2 = new JPanel();
JButton button1 = new JButton("previous frame!");
JButton button2 = new JButton("next frame");
frame.setLocationRelativeTo(null);
frame.setResizable(true);
frame.setVisible(true);
frame.setSize(600, 400);
frame.add(panel1);
frame.add(panel2);
panel1.add(button2);
panel1.setVisible(true);
panel2.add(button1);
panel2.setVisible(false);
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
panel1.setVisible(true);
panel2.setVisible(false);
}
});
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
panel1.setVisible(false);
panel2.setVisible(true);
}
});
}
}
merci d'avance
+1 pour sscce. Reformaté code; s'il vous plaît revenir si elle est incorrecte.
Tout à droite, l'apprécier!
Tout à droite, l'apprécier!
OriginalL'auteur Opoe | 2011-04-08
Vous devez vous connecter pour publier un commentaire.
Utiliser un layout manager.
cadre.setLayout(new FlowLayout());
Le layout manager poignées de réglage de la position et de la taille de tous les éléments sur l'écran. Si vous n'utilisez pas le gestionnaire de configuration que vous avez à faire tout de positionnement et de dimensionnement vous-même. Voici une bonne explication de la disposition des gestionnaires de lien
Ok merci, merci de votre temps!
L'utilisation d'un différentes gestionnaire de configuration--
JFrame
's le volet de contenu utiliseBorderLayout
par défaut. Leadd()
des appels à la fois par défaut pourCENTER
, et un seul composant peut être là, de sorte que le second remplace le premier.OriginalL'auteur Eric Milas
Un autre moyen utile pour ce faire, et je pense que le mieux est d'utiliser un CardLayout et à ajouter les deux JPanels à un conteneur qui utilise ce CardLayout. Ensuite, vous pouvez facilement échanger des vues en appelant le CardLayout méthodes.
par exemple,
Le CardLayout sera assurez-vous que les choses sont de taille OK, que le preferredSize du conteneur sera le preferredSize de la plus grande carte-composant. Le CardLayout prend soins de revalidation et de repeindre les choses, de sorte qu'il est plus difficile pour visser les choses. Il permet également de deux séquentiel de changer de cartes (via la méthode next() et previous() méthode d'accès aléatoire et les changements de cartes (en utilisant les constantes de Chaîne que vous utilisez pour ajouter des cartes à le conteneur).
Merci pour cette super réponse! Je suis sûr que cela va aider beaucoup d'autres aussi!
Vous êtes les bienvenus. Merci pour les commentaires.
OriginalL'auteur Hovercraft Full Of Eels