gpt4 book ai didi

java - 无法显示 JTable

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:28 26 4
gpt4 key购买 nike

我在显示 JTable 面板时遇到了小问题(我猜)。我的类包含对象数组:

public class Item 

{

String itemDesc = "";
float price = 0;
private itemType enmItemType;
Object[][] data = {{itemDesc, enmItemType , new Float(price)}};
.
.
.
.

}

这里是包含 JTable 的 Table 类:

class Table extends JFrame
{
// Instance attributes used in this example
private JPanel topPanel;
private JTable table;
private JScrollPane scrollPane;
private JButton update_Button;

// Constructor of main frame
public Table()
{
// Set the frame characteristics
setTitle("Add new item" );
setSize(300, 200);
setBackground( Color.gray );

// Create a panel to hold all other components
topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );

// Create columns names
String columnNames[] = {"Item Description", "Item Type", "Item Price"};

// Create some data
Object dataValues[][] ;
Item itm = new Item();
dataValues = itm.data;

// Create a new table instance
table = new JTable( dataValues, columnNames );

////////////////////////////

JComboBox itemTypeCombobox = new JComboBox();
TableColumn column1 = table.getColumnModel().getColumn(1);
column1.setCellEditor(new DefaultCellEditor(itemTypeCombobox));

////////////////////////////

// Add the table to a scrolling pane
scrollPane = new JScrollPane( table );
topPanel.add( scrollPane, BorderLayout.CENTER );
JButton button = new JButton("Add Item");
topPanel.add( button, BorderLayout.SOUTH );

}

}

主要程序是:

public static void main(String[] args)
{
Menu m = new Menu();
m.chooseMenu();

// Create an instance of the test application
Table mainFrame = new Table();
mainFrame.setVisible( true );
}

我没有收到任何错误/警告,但我仍然没有看到任何表格。有人可以告诉我导致问题的原因吗?

谢谢。

最佳答案

我说不出哪里出了问题。但是我稍微修改了你的代码(因为它有编译时错误)

它对我来说很好用。以下为截图

Item

public class Item{
String itemDesc = "";
float price = 0;
Object[][] data = {{"test","test","test"},
{"test","test","test"},
{"test","test","test"},
{"test","test","test"}};
}

你的主表类

package test;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Menu;

import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;

public class Table extends JFrame

{
// Instance attributes used in this example

private JPanel topPanel;
private JTable table;
private JScrollPane scrollPane;
private JButton update_Button;

// Constructor of main frame
public Table() {
// Set the frame characteristics
setTitle("Add new item");
setSize(300, 200);
setBackground(Color.gray);

// Create a panel to hold all other components
topPanel = new JPanel();
topPanel.setLayout(new BorderLayout());
getContentPane().add(topPanel);

// Create columns names
String columnNames[] = { "Item Description", "Item Type", "Item Price" };

// Create some data
Object dataValues[][];
Item itm = new Item();
dataValues = itm.data;

// Create a new table instance
table = new JTable(dataValues, columnNames);

// //////////////////////////

JComboBox itemTypeCombobox = new JComboBox();
TableColumn column1 = table.getColumnModel().getColumn(1);
column1.setCellEditor(new DefaultCellEditor(itemTypeCombobox));

// //////////////////////////

// Add the table to a scrolling pane
scrollPane = new JScrollPane(table);
topPanel.add(scrollPane, BorderLayout.CENTER);
JButton button = new JButton("Add Item");
topPanel.add(button, BorderLayout.SOUTH);

}

public static void main(String[] args) {
Menu m = new Menu();
// Create an instance of the test application
Table mainFrame = new Table();
mainFrame.setVisible(true);
}

}

关于java - 无法显示 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744684/

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