1

スキャンしたテキストをテキストファイルからJPanelに印刷しています。テキストは表示されていますが、下にスクロールしていません。何か案は?これが私のコードです:

rFrame = new JFrame();
rFrame.setBounds(10, 10, 502, 502);
rFrame.getContentPane().setLayout(null);


JPanel pan = new JPanel();
pan.setBackground(Color.WHITE);
pan.setBounds(100, 100, 400, 400);
rFrame.getContentPane().add(pan);
pan.setEnabled(false);

JScrollPane scrollBar=new JScrollPane(pan,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                                          JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);  

rFrame.add(scrollBar);

JTextArea area = new JTextArea();
area.setText(printToFrame()); //Function prints from text file
pan.add(area);
rFrame.add(pan);

rFrame.setVisible(true);
rFrame.setLayout(new FlowLayout());
rFrame.getContentPane().add(pan);
rFrame.pack();

ClientWindow window = new ClientWindow();
window.rFrame.setVisible(true);
4

1 に答える 1

2

JPanelのサイズがのビューポートより大きくないため、下にスクロールしませんJScrollPaneJPanelを呼び出してのサイズを大きくするか*Object name*.setPreferredSize(new Dimension(int w, int h))、この目的のために作成されたコンポーネントであるの中にテキストを表示して適切な方法で行う必要があります。JTextArea

元:

public static void main(String[] args) {
    JTextArea ta = new JTextArea();
    JScrollPane sp = new JScrollPane(ta);

    // disables editing
    ta.setEditable(false);

    // enable line wrap to wrap text around
    ta.setLineWrap(true);

    // words will not be cut off when wrapped around
    ta.setWrapStyleWord(true);

    // displays the text you read in
    ta.append( *text you read in* );
}

Oracleには、JTextAreasの使用方法に関するページがあります。また、使用する他のメソッドのAPIを確認することもできます。

于 2012-10-27T19:10:51.133 に答える