comment utilisez-vous de la Grille de mise en page des panneaux en Java?

Im essayant de créer une JFrame avec deux panneaux. le panneau du haut contiendra un champ de texte et le fond contient une grille de boutons. Ive utilisé gridLayout organiser les boutons et les ajouter dans un panneau et a ajouté que le panneau de la JFrame mais selon l'éditeur, la valeur est NULL. La même chose est vraie de la deuxième séance. Quelqu'un pourrait-il aider à me diriger vers le problème?

import java.awt.*;
import javax.swing.*;
public class frameClass extends JFrame{
private static final long serialVersionUID = 1L;
private JFrame frame;
private JPanel panel;
private JPanel panel2;
private JButton button0;
private JButton button1;
private JButton button2;
private JButton button3;
public frameClass() {
panel = new JPanel(new GridLayout(4,4,5,5));            
panel.setBackground(Color.BLACK);
Font font1 = new Font("SanSerif",Font.BOLD, 16);
button0 = new JButton("0");
button0.setFont(font1);
button0.setBackground(Color.BLACK);
button0.setForeground(Color.WHITE);
panel.add(button0);
button1 = new JButton("1");
button1.setFont(font1);
button1.setBackground(Color.WHITE);
panel.add(button1);
button2 = new JButton("2");
button2.setFont(font1);
button2.setBackground(Color.BLACK);
button2.setForeground(Color.WHITE);
panel.add(button2);
button3 = new JButton("3");
button3.setFont(font1);
button3.setBackground(Color.WHITE);
panel.add(button3);
frame.add(panel);
panel2 = new JPanel(new BorderLayout());
panel2.add(new JTextField(21), BorderLayout.CENTER);
frame.add(panel2);
frame.setVisible(true);
}
public static void main(String[] args) {
new calculator();       
}
}
  • Pour mieux aider plus tôt, après une SSCCE.
  • Vous avez l'air d'être en train d'essayer d'utiliser un panel1 variable qui n'a jamais été déclarée, et vous avez déclaré un panel2 variable qui n'est jamais utilisé. Le code même de la compilation?
  • Cité à partir d'une réponse de Alexander Lin Êtes-vous sûr que ce code est en cours? Vous avez panel1.add(new JTextField(21), BorderLayout.CENTER);, mais il semble que vous avez déclaré private JPanel panel2;. Est-ce dans votre application?
  • Le code dans la dernière édition n'est toujours pas compiler proprement. Donc, par conséquent, ne peut pas être un SSCCE d'un problème de temps.
InformationsquelleAutor user2997509 | 2013-11-16