这个问题已经在这里有了答案:

我正在构建一个基本的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

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

  ask by xiver77 translate from so

未解决问题?本站智能推荐: