gpt4 book ai didi

java - 将组件添加到 jPanel java

转载 作者:行者123 更新时间:2023-12-01 15:30:18 25 4
gpt4 key购买 nike

我正在尝试将 jtable 组件添加到我的 jPanel,但我看不到它。我究竟做错了什么?。

table gui = new table(data,colum); 
mainPanel.add(gui.table);

class table extends JFrame
{
public JTable table;

public table(Vector data, Vector colum)
{
setLayout(new FlowLayout());
table = new JTable(data,colum);
table.setPreferredScrollableViewportSize(new Dimension(900,10));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}

}

最佳答案

扩展 JFrame 看起来很奇怪;您不使用任何顶级容器功能。下面是一个扩展 JPanel 的示例,其中 main() 将面板放入 JFrame 中。

--编辑以接受现有的 JPanel

public class TablePanel
{
public static void addTableToPanel(JPanel jPanel, Vector rowData, Vector columnNames)
{
JTable jTable = new JTable(rowData, columnNames);
jTable.setFillsViewportHeight(true);

JScrollPane jScrollPane = new JScrollPane(jTable);
jScrollPane.setPreferredSize(new Dimension(300, 50));

jPanel.add(jScrollPane);
}

public static void main(String[] args) throws Exception
{
SwingUtilities.invokeAndWait(new Runnable()
{
@Override
public void run()
{
Vector cols = new Vector();
Vector rows = new Vector();
Vector row1 = new Vector();

cols.add("A");
cols.add("B");
cols.add("C");
row1.add("1");
row1.add("2");
row1.add("3");
rows.add(row1);
rows.add(row1.clone());
rows.add(row1.clone());
rows.add(row1.clone());

JFrame frame = new JFrame("TableTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel jPanel = new JPanel();
jPanel.setLayout(new BorderLayout(0, 0));
TablePanel.addTableToPanel(jPanel, rows, cols);

frame.getContentPane().add(jPanel);
frame.pack();
frame.setVisible(true);
}
});
}
}

关于java - 将组件添加到 jPanel java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606840/

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