gpt4 book ai didi

java - 访问包含 JTable 的 JScrollpane

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:16 26 4
gpt4 key购买 nike

我在 JScrollpane 中有一个 JTable。我无权访问 JScrollpane 变量。但是我可以访问 JTable。现在如何使用 JTable 访问 JScrollpane。

For Example -> mytable.getAncestor(...) or something?

最佳答案

如果你想从你的 JTable 使用中获取 JScrollPane

JTable jTable = new JTable(rowData, colData);
JScrollPane scrollPane = new JScrollPane(jTable);
// now you have the ViewPort
JViewport parent = (JViewport)jTable.getParent();
JScrollPane enclosing = (JScrollPane)parent.getParent();

试试下面的代码..

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRootPane;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;

/**
*
* @author Patrick Ott <Patrick.Ott@professional-webworkx.de>
* @version 1.0
*/
public class MainFrame extends JFrame {

private String[][] rowData =
{
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Max", "Mustermann", "Musterhausen"},
{"Petra", "Mustermann", "Musterhausen"}
};

private String[] columnData =
{
"Firstname", "Lastname", "City"
};
private JTable jTable;

public MainFrame() {
jTable = new JTable(rowData, columnData);
jTable.setName("CRM Table");
}

public void createAndShowGui() {
this.setTitle("JTable in JScrollPane");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.getContentPane().add(new JLabel("CRM System"), BorderLayout.NORTH);
JScrollPane scrollPane = new JScrollPane(jTable);
this.getContentPane().add(scrollPane, BorderLayout.CENTER);
this.setSize(new Dimension(1024, 768));
this.setVisible(true);
Container parent = jTable.getParent().getParent();
JScrollPane enclosing = (JScrollPane)parent;
parent.remove(jTable);
parent.add(new JLabel("Test"));
// System.out.println(enclosing.getClass().getSimpleName());
}
}

帕特里克

关于java - 访问包含 JTable 的 JScrollpane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22040701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com