3

別のスクロールペイン内に「ネストされた」スクロールペインを作成する必要があり、ロジックに関するアドバイスを少し探しています。

これが私がやりたいことです- ここに画像の説明を入力してください

これを簡単にするために、「デジタルケーブルテレビ」の例えを使用します。それが私に思い出させるものだからです。

左側の赤いパネルのボックスを「チャンネル名」と考え、青いパネルのボックスを「名前の表示」と考えてください。

右側の黒いスクロールバーは、チャンネル名が常に番組名と一致するように、両方のパネルの垂直スクロールを制御する必要があります。

ただし、青色のボックスにのみ影響する水平スクロールバー(青色)も必要です(前方にスクロールしてどの番組が表示されるかを確認するように考えてください。ただし、左側にチャンネル名を表示したい場合は、だからあなたは何が起こっているのか知っています)

私がこれまでに試した戦略では、常に水平スクロールバーが垂直スクロールペインの下部にのみ表示され、常に表示される必要があります。手伝ってください!これは可能ですか?

4

3 に答える 3

1

行ヘッダーコンポーネントを使用して、そのようなことを行うことができます。次の基本的な例は、アイデアを示している可能性があります。

JList insideLeft = new JList(new String[] { "Line 1", "Line 2", "Line 3" });
JList insideRight = new JList(new String[] { "Item 1", "Item 2", "Item 3" });
JScrollPane scrollPane = new JScrollPane(insideRight, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setRowHeaderView(insideLeft);
于 2011-09-09T17:16:05.870 に答える
1

ここで見つけたように、2つのテーブル間でスクロールと選択を同期させることができます。

于 2011-09-09T21:32:59.237 に答える
0

独自のパネルに赤と青の両方の領域があると仮定します。それぞれredPanelとbluePanel。

その場合は、次のようにしてみてください。

JScrollPane bluePane = new JScrollPane(bluePanel, 
        JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
JPanel redAndBluePanel = new JPanel();
redAndBluePanel.setLayout(new BoxLayout(redAndBluePanel, BoxLayout.X_AXIS));
redAndBluePanel.add(redPanel);
redAndBluePanel.add(bluePane);
JScrollPane redAndBluePane = new JScrollPane(redAndBluePanel, 
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

ここで、add redAndBluePaneを必要な領域に追加するだけで、希望どおりに機能するはずです。

于 2011-09-09T17:03:56.670 に答える