У меня есть JTable внутри JScrollPane; Как я могу получить JTable?Как получить компонент внутри JScrollPane
Благодаря
У меня есть JTable внутри JScrollPane; Как я могу получить JTable?Как получить компонент внутри JScrollPane
Благодаря
JViewport viewport = scrollPane.getViewport();
JTable mytable = (JTable)viewport.getView();
рядом: но немного слишком сложно: scrollPane.getViewportView() - общее правило: если есть методы делегата, используйте их :-) – kleopatra
Я не могу найти метод getViewportView() для JScrollPane, поэтому первый ответ похоже правильный. http://docs.oracle.com/javase/8/docs/api/javax/swing/JScrollPane.html – Enwired
вы должны извлечь из JTable
JViewport
и JViewport
от JScrollPane
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.*;
import java.util.Arrays;
import java.util.Vector;
public class SingleTableTest extends JFrame {
private static final long serialVersionUID = 1L;
public SingleTableTest() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Vector<Vector<String>> rowData = new Vector<Vector<String>>();
Vector<String> columnName = new Vector<String>(Arrays.asList("Column 1"));
for (int i = 0; i < 2000; i++) {
rowData.add(new Vector<String>(Arrays.asList(Integer.toString(i))));
}
JTable table = new JTable(rowData, columnName);
//JScrollPane scrollPane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane scrollPane = new JScrollPane(table);
JScrollBar vertical = scrollPane.getVerticalScrollBar();
vertical.setPreferredSize(new Dimension(0, 0));
add(scrollPane);
pack();
setVisible(true);
JViewport view = scrollPane.getViewport();
Component[] components =view.getComponents();
for (int i1 = 0; i1 < components.length; i1++) {
if (components[i1] instanceof JTable) {
System.out.println("Hehehehr here is heídden that JTable");
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new SingleTableTest();
}
});
}
}
Хехехер здесь, он сказал, что JTable - LOL! – ecle
По своему объекту, да, нет? Нужно сначала увидеть ваш фрагмент кода, тогда мы сможем поговорить :) – ecle
Перейдите в отладчик и продолжайте исследовать дочернюю переменную компонента, начиная со всех дочерних элементов JScrollPane, потом всех детей этих детей и т. Д., Она обязательно будет там где-то. – LazyCubicleMonkey
Что вы пробовали до сих пор? – Naved