0

JScrollPanes 内に JTextPanes の配列があります。私が言及したこれらのコンポーネントはすべて、JScrollPane 内の JPanel 内にあります。

ユーザー インターフェイスの図

プログラムの開始時には、どの JTextPanes にもテキストがないため、それらのスクロールバーは表示されません。多くのコンポーネントが含まれているため、JPanel のスクロールバーが表示されます。

私の問題は、カーソルが JTextPanes の 1 つの上にあり、スクロールしようとすると、JTextPane のスクロールバーでスクロールしたいとコンピュータが判断するため、何も起こらないことです。JPanel のスクロールバーでスクロールしようとしていることをコンピュータに認識させたいのです。これを達成する方法はありますか?

ありがとう!

編集:

このコードを使用して、上記と同様の UI を生成できます (これは、JFrame を拡張するクラスのコンストラクターです。多くの優れたコーディング習慣を無視して申し訳ありません)。

public JFrameTest() {
    JPanel panel = new JPanel( new GridLayout( 10 , 10 , 10 , 10 ) );
    for ( int i = 0 ; i < 10 ; i ++ ) {
        for ( int j = 0 ; j < 10 ; j ++ ) {
            JScrollPane paneToAdd = new JScrollPane( new JTextPane() ) {
                /**
                 * 
                 */
                private static final long serialVersionUID = 1L;

                @Override
                public Dimension getPreferredSize() {
                    return new Dimension( 100 , 100 );
                }
            };
            panel.add( paneToAdd );
        }
    }
    add( new JScrollPane( panel ) );

    setSize( 700 , 500 );
    setVisible( true );
    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
4

1 に答える 1