JSplitPane
を移動しないようにすることをお勧めします。ペインがドラッグする前/後にいくつかのピクセルをジャンプするのがむしろ厄介なことが想像できます。
しかし、スクロールバーの寸法を取得し、その分だけ仕切りの位置をオフセットすることをお勧めします。
JTable table = new JTable(myTableModel);
final JScrollPane scrollPane = new JScrollPane(table);
scrollPane
.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane
.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
をあなたは、水平スクロールバーが表示されているかを決定するために、テーブルにリスナーを追加し、必要に応じて、いくつかはJSplitPane
にオフセットを追加することができます::
たとえば、次のように
JTable
を構築してきたと言います
table.addComponentListener(new ComponentListener() {
@Override
public void componentShown(ComponentEvent e) {}
@Override
public void componentResized(ComponentEvent e) {
System.out
.println(scrollPane.getHorizontalScrollBar().getHeight());
}
@Override
public void componentMoved(ComponentEvent e) {}
@Override
public void componentHidden(ComponentEvent e) {}
});
分周器の位置を変更することによって、table
がサイズ変更され、ループが発生するので、この構成は理想的ではありません。
水平スクロールバーをハイライト表示しました。あなたが言っているのはそれですか? –
混乱を避けるために、画像を再掲載します。 –
私は文句を変えて、あなたが達成しようとしていることをもう少し明確にしました。これがあなたが望むものでない場合は、自由にロールバックしてください。 –