没有调整框架大小的java代码不显示结果

时间:2016-02-19 00:38:11

标签: java swing awt

我正在尝试改造手机键盘,但是如果不调整结果窗口的大小,我就看不到结果,这是我不想要的。

这是我的代码: 在输入显示区域的代码之前,代码运行得很好。但在那之后,我必须不断调整它(我不想要)我已经尝试调整显示区域本身。

import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;

public class mobilePhone{

    private JFrame keypadFrame;
    private JPanel panels1;
    private JTextArea displayArea;

    private JButton b1;
    private JButton b2;
    private JButton b3;
    private JButton b4;
    private JButton b5;
    private JButton b6;
    private JButton b7;
    private JButton b8;
    private JButton b9;
    private JButton b10;
    private JButton b11;
    private JButton b12;
    private JButton b13;
    private JButton b14;
    private JButton b15;

    public mobilePhone(){
        Interface();
    }
    public void Interface(){

        keypadFrame = new JFrame("Mobile Calculator");
        keypadFrame.setVisible(true);
        keypadFrame.setSize(270, 300);
        keypadFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        keypadFrame.setResizable(false);

        displayArea = new JTextArea(2,5);
        displayArea.setBackground(Color.WHITE);
        Border DABorder = BorderFactory.createLineBorder(Color.RED,4);
        displayArea.setBorder(DABorder);
        Font DAFont = new Font("ariel",Font.BOLD,30);
        displayArea.setFont(DAFont);
        displayArea.setLineWrap(true);

        panels1 = new JPanel(new GridLayout(5,1));
        panels1.setBackground(Color.DARK_GRAY);
        Border panelBorder = BorderFactory.createLineBorder(Color.BLUE,5);
        panels1.setBorder(panelBorder); 

        b1 = new JButton("7");
        b2 = new JButton("8");
        b3 = new JButton("9");
        b4 = new JButton("4");
        b5 = new JButton("5");
        b6 = new JButton("6");
        b7 = new JButton("1");
        b8 = new JButton("2");
        b9 = new JButton("3");
        b10 = new JButton("*");
        b11 = new JButton("0");
        b12 = new JButton("#");
        b13 = new JButton("CLEAR");

        panels1.add(b1);
        panels1.add(b2);
        panels1.add(b3);
        panels1.add(b4);
        panels1.add(b5);
        panels1.add(b6);
        panels1.add(b7);
        panels1.add(b8);
        panels1.add(b9);
        panels1.add(b10);
        panels1.add(b11);
        panels1.add(b12);

        keypadFrame.add(panels1,BorderLayout.CENTER);
        keypadFrame.add(displayArea, BorderLayout.NORTH);
        keypadFrame.add(b13, BorderLayout.EAST);
    }

    public static void main(String[] args){

        new mobilePhone();

    }
}

1 个答案:

答案 0 :(得分:1)

选择keypadFrame.setVisible(true);并将其放在Interface方法的末尾(然后查看Code Conventions for the Java TM Programming Language,这样可以让人们更轻松地阅读您的代码并为您提供帮助读别人)

或者,在框架revalidate上调用repaintcontentPane