如何在 java netbeans 中将 Jtable 数据传递到一个框架到另一个框架
How to pass the Jtable data in to one frame to another in java netbeans
我正在创建一个简单的库存销售系统。一切正常,但我想将 jtable 数据发送到打印 frame.i 只能将总值发送到打印帧。 Jtable数据如何发送。
销售系统截图
J表代码
DefaultTableModel dtm;
dtm = (DefaultTableModel) jTable1.getModel();
dtm.addRow(new Object[]
{
txtproduct.getText(),
txtprice.getText(),
});
通过这种方式,我将数据添加到 JTable 中,我需要将数据传递给打印框架。
我试过这种方法
新打印(总计,jTable1.getModel()).setVisible(true);
但是显示错误找不到合适的构造函数
打印收据
Pos.java
String total = txttotal.getText();
new print(total,jTable1.getModel()).setVisible(true);
Print.java
String ltotal;
public print(String name,String age,String total)
{
initComponents();
this.ltotal = total;
txtarea.setText(txtarea.getText() +"************************************\n");
txtarea.setText(txtarea.getText() +"**********LOS Super*********\n");
txtarea.setText(txtarea.getText() +"\n");
txtarea.setText(txtarea.getText() +"Total............" + ltotal + "\n");
}
如果您想从其他窗格访问一个 Jtable 的内容,您可以在这里做的一件事是创建一个数组,维度将取决于数据类型,例如,如果有两个列然后将有两个维度等等。
在这里,您可以使向 table 提供数据的数组成为静态数组或 public,并从其他窗格访问内容。
示例代码如下:
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class JTableExamples {
// frame
JFrame f;
// Table
JTable j;
// Constructor
JTableExamples()
{
// Frame initiallization
f = new JFrame();
// Frame Title
f.setTitle("JTable Example");
// Data to be displayed in the JTable
public String[][] data = {
{ "Kundan Kumar Jha", "4031", "CSE" },
{ "Anand Jha", "6014", "IT" }
};
// Column Names
String[] columnNames = { "Name", "Roll Number", "Department" };
// Initializing the JTable
j = new JTable(data, columnNames);
j.setBounds(30, 40, 200, 300);
// adding it to JScrollPane
JScrollPane sp = new JScrollPane(j);
f.add(sp);
// Frame Size
f.setSize(500, 200);
// Frame Visible = true
f.setVisible(true);
}
// Driver method
public static void main(String[] args)
{
new JTableExamples();
}
}
现在数组数据是Public所以你可以从其他场景访问它。
如果你想调用像new print(total,jTable1.getModel())
这样的构造函数,那么你必须这样写那个构造函数:
(我认为你得到错误是因为你的程序没有这个构造函数。如果你添加这个,错误就会消失。)
public print(String total, TableModel tableModel)
{
initComponents();
this.ltotal = total;
txtarea.setText(txtarea.getText() +"************************************\n");
txtarea.setText(txtarea.getText() +"**********LOS Super*********\n");
txtarea.setText(txtarea.getText() +"\n");
txtarea.setText(txtarea.getText() +"Total............" + ltotal + "\n");
txtarea.setText(txtarea.getText() + "Product Price\n");
for (int i = 0; i < tableModel.getRowCount(); i++)
{
String product = (String) tableModel.getValueAt(i, 0);
String price = (String) tableModel.getValueAt(i, 1);
txtarea.setText(txtarea.getText() + product + " " + price + "\n");
}
}
另一个改进建议:
您可以将文本附加到 String
变量并在末尾仅调用一次 setText()
,而不是多次调用 txtarea.setText()
。
我正在创建一个简单的库存销售系统。一切正常,但我想将 jtable 数据发送到打印 frame.i 只能将总值发送到打印帧。 Jtable数据如何发送。
销售系统截图
J表代码
DefaultTableModel dtm;
dtm = (DefaultTableModel) jTable1.getModel();
dtm.addRow(new Object[]
{
txtproduct.getText(),
txtprice.getText(),
});
通过这种方式,我将数据添加到 JTable 中,我需要将数据传递给打印框架。
我试过这种方法
新打印(总计,jTable1.getModel()).setVisible(true);
但是显示错误找不到合适的构造函数
打印收据
Pos.java
String total = txttotal.getText();
new print(total,jTable1.getModel()).setVisible(true);
Print.java
String ltotal;
public print(String name,String age,String total)
{
initComponents();
this.ltotal = total;
txtarea.setText(txtarea.getText() +"************************************\n");
txtarea.setText(txtarea.getText() +"**********LOS Super*********\n");
txtarea.setText(txtarea.getText() +"\n");
txtarea.setText(txtarea.getText() +"Total............" + ltotal + "\n");
}
如果您想从其他窗格访问一个 Jtable 的内容,您可以在这里做的一件事是创建一个数组,维度将取决于数据类型,例如,如果有两个列然后将有两个维度等等。
在这里,您可以使向 table 提供数据的数组成为静态数组或 public,并从其他窗格访问内容。
示例代码如下:
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class JTableExamples {
// frame
JFrame f;
// Table
JTable j;
// Constructor
JTableExamples()
{
// Frame initiallization
f = new JFrame();
// Frame Title
f.setTitle("JTable Example");
// Data to be displayed in the JTable
public String[][] data = {
{ "Kundan Kumar Jha", "4031", "CSE" },
{ "Anand Jha", "6014", "IT" }
};
// Column Names
String[] columnNames = { "Name", "Roll Number", "Department" };
// Initializing the JTable
j = new JTable(data, columnNames);
j.setBounds(30, 40, 200, 300);
// adding it to JScrollPane
JScrollPane sp = new JScrollPane(j);
f.add(sp);
// Frame Size
f.setSize(500, 200);
// Frame Visible = true
f.setVisible(true);
}
// Driver method
public static void main(String[] args)
{
new JTableExamples();
}
}
现在数组数据是Public所以你可以从其他场景访问它。
如果你想调用像new print(total,jTable1.getModel())
这样的构造函数,那么你必须这样写那个构造函数:
(我认为你得到错误是因为你的程序没有这个构造函数。如果你添加这个,错误就会消失。)
public print(String total, TableModel tableModel)
{
initComponents();
this.ltotal = total;
txtarea.setText(txtarea.getText() +"************************************\n");
txtarea.setText(txtarea.getText() +"**********LOS Super*********\n");
txtarea.setText(txtarea.getText() +"\n");
txtarea.setText(txtarea.getText() +"Total............" + ltotal + "\n");
txtarea.setText(txtarea.getText() + "Product Price\n");
for (int i = 0; i < tableModel.getRowCount(); i++)
{
String product = (String) tableModel.getValueAt(i, 0);
String price = (String) tableModel.getValueAt(i, 1);
txtarea.setText(txtarea.getText() + product + " " + price + "\n");
}
}
另一个改进建议:
您可以将文本附加到 String
变量并在末尾仅调用一次 setText()
,而不是多次调用 txtarea.setText()
。