wie verwenden Sie Grid-layout-panels in Java?

Ich versuche zu erstellen, die einen JFrame mit zwei Platten. das Obere panel enthält ein text-Feld und das untere panel enthält ein raster von Tasten. Ive verwendet gridLayout zum anordnen der Schaltflächen und Sie in einem panel Hinzugefügt und das panel auf dem JFrame, sondern nach dem editor der Wert der Platte ist NULL. Das gleiche gilt von der zweiten Tafel. Könnte jemand helfen mich direkt um das problem?

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();       
}
}
  • Für bessere Hilfe früher, nach einem SSCCE.
  • Sie scheinen zu versuchen, eine panel1 variable, wurde niemals erklärt, und Sie haben erklärt panel2 variable wird nie benutzt. Funktioniert dieser code auch kompilieren?
  • Zitiert aus einer Antwort von Alexander Lin Sind Sie sicher, dass dieser code ist aktuell? Sie haben panel1.add(new JTextField(21), BorderLayout.CENTER);, aber es scheint, wie Sie erklärt private JPanel panel2;. Ist diese in Ihrer Anwendung?
  • Der code in der neuesten Bearbeiten immer noch nicht kompilieren sauber. Deshalb kann nicht ein SSCCE ein Laufzeit-problem.
InformationsquelleAutor user2997509 | 2013-11-16
Schreibe einen Kommentar