JFrame看起来太小了

时间:2015-05-16 17:05:37

标签: java swing

我正在构建一个基本的Swing GUI,但是在这一小段代码中,我没有让我的组件在那里。窗口似乎没有正确包装,因此它太小了。我做错了什么?

class TesterFont extends Font{
    TesterFont(){
        super(Font.MONOSPACED,Font.PLAIN,12);
    }
}

class TesterTextArea extends JScrollPane{
    final static int N_COLUMNS=24;

    TesterTextArea(int nRows){
        super(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        add(new JTextArea(nRows,N_COLUMNS){{
            setFont(new TesterFont());
            setLineWrap(true);
            setWrapStyleWord(true);
        }});
    }
}

class TesterFrame extends JFrame{
    TesterFrame(){
        setTitle(Tester.class.getSimpleName());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setLayout(new GridLayout(0,1));
        add(new TesterTextArea(10));
        add(new TesterTextArea(10));
        pack();
        setVisible(true);
    }
}

class Tester{
    void start(){
        new TesterFrame();
    }

    public static void main(String[] arguments) throws Exception{
        new Tester().start();
    }
}

1 个答案:

答案 0 :(得分:0)

通过在add的构造函数中将super更改为TesterTextArea来解决问题!