VonC Joshua, , isVisible() Component. , javadoc :
, , . , , Frame.
This means that until it JScrollPaneis added to the dimension frame, the call isVisible()to JScrollBarwill always be returned true.
Consider the following SSCCE:
public static void main(String[] args) {
int size = 5;
JTable table = new JTable(makeData(size), makeHeadings(size));
JScrollPane pane = new JScrollPane(table);
pane.setPreferredSize(new Dimension(200, 200));
System.out.println(pane.getVerticalScrollBar().isVisible());
JFrame frame = new JFrame("JScrollPane Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(pane);
System.out.println(pane.getVerticalScrollBar().isVisible());
frame.pack();
System.out.println(pane.getVerticalScrollBar().isVisible());
frame.setVisible(true);
System.out.println(pane.getVerticalScrollBar().isVisible());
}
private static Object[] makeHeadings(int size) {
Object[] headings = new Object[size];
for (int i=0; i<size; i++){
headings[i] = i;
}
return headings;
}
private static Object[][] makeData(int size) {
Object[][] data = new Object[size][size];
for (int i=0; i<size; i++){
for (int j=0; j<size; j++){
data[i][j] = i*j;
}
}
return data;
}
Similarly, it’s worth adding that if you add JScrollPaneto the inner frame, it scrollBar.isVisible()will work only after the inner frame has been added to another component.
source
share