プロジェクトをJava 8にアップグレードしました。アプリケーションを実行した後、JScrollPaneからのスクロールが表示されません。同じコードがJava 7で動作し、すべてが正常です。Java 7からJava 8へのアップグレード後にJTableを使用したJScrollPaneでスクロールが表示されない
public static void main(String[] a){
JPanel contentPane = new JPanel();
contentPane.setBackground(Color.WHITE);
contentPane.setBorder(new EmptyBorder(0, 0, 0, 0));
contentPane.setLayout(new javax.swing.BoxLayout(contentPane, javax.swing.BoxLayout.Y_AXIS));
JPanel aggregates = new JPanel("Aggregates", new Insets(40, 0, 0, 0));
GridBagConstraints gbc_aggregates = new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, 1, new Insets(10, 10, 10, 10), 0, 0);
gbl_panel.setConstraints(aggregates, gbc_aggregates);
GridBagLayout gbl_agregats = new GridBagLayout();
addParametersLayout(gbl_agregats, new int[]{0,0,0}, new int[]{0, 0},new double[]{ 0.0, 0.0, Double.MIN_VALUE}, new double[]{0.0, Double.MIN_VALUE});
aggregates.setLayout(gbl_agregats);
JTable table = new JTable(new MyTableModel(null));
table.setPreferredSize(new Dimension(850, Const.rowHeight));
JScrollPane scrollPane = new JScrollPane(table);
table.setPreferredScrollableViewportSize(new Dimension(850, 10 *Const.rowHeight));
GridBagConstraints gbc_scrollPane= new GridBagConstraints(0, 1, 3, 1, 0.0, 0.0, GridBagConstraints.WEST, 1, new Insets(5, 5, 20, 5), 0, 0);
gbl_agregats.setConstraints(scrollPane, gbc_scrollPane);
aggregates.add(scrollPane);
JPanel main_panel = new JPanel();
main_panel.add(aggregates);
JScrollPane scrPane = new JScrollPane(main_panel);
scrPane.getVerticalScrollBar().setUnitIncrement(16);
scrPane.setBorder(BorderFactory.createEmptyBorder());
scrPane.getInsets().set(0, 0, 0, 0);
contentPane.add(scrPane);
setContentPane(contentPane);
}
public static void addParametersLayout(GridBagLayout gbl,
int[] columnWidths, int[] rowHeights, double[] columnWeights,
double[] rowWeights) {
gbl.columnWidths = columnWidths;
gbl.rowHeights = rowHeights;
gbl.columnWeights = columnWeights;
gbl.rowWeights = rowWeights;
}
質問:Java 8では何が変更されましたか?旧バージョンのJavaで同じスクロールがうまくいくのはなぜですか?
編集:
は、たぶん私はあまりにも具体的ではありませんよ。 私は私のプロジェクトをコンパイルするとき、私はそのような何か(ちょうどバー)を参照してください。
それが働いているので、私は私のテーブルをスクロールすることができますが、それは(私はちょうどバーを参照してください)目に見えないのです。
* "table.setPreferredSize(新しい次元(850、Const.rowHeightは)); *" 疑わしい開始 – MadProgrammer
構築物を可能とSwingのGUIは、[イベントディスパッチスレッド](HTTP上で_のみ_オブジェクトを操作します:// docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)。 – trashgod
使用されているL&Fが変更されている可能性があります。 Nimbusはこのような変更を引き起こすのに十分な侵入性を持っています;-) –