如何在Java NetBeans中将Jtable数据传递到一帧到另一帧

时间:2019-01-13 14:09:26

标签: java swing jframe jtable

我正在创建一个简单的库存销售系统。一切正常,但我想将jtable数据发送到打印框架。我只能将总值发送到打印框架。 Jtable数据如何发送。

销售系统屏幕截图 enter image description here

表格代码

 DefaultTableModel dtm;
    dtm = (DefaultTableModel) jTable1.getModel();
    dtm.addRow(new Object[]
    { 
        txtproduct.getText(),
        txtprice.getText(),

    });

这样,我将数据添加到JTable中,我需要将数据传递到打印框架。 我尝试过这种方式
    新打印(total,jTable1.getModel())。setVisible(true); 但显示错误,找不到合适的承包商

打印收件人 enter image description here

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");

}

2 个答案:

答案 0 :(得分:1)

如果您要调用implementation 'com.airbnb.android:lottie:2.7.0' 之类的构造函数,则必须这样编写该构造​​函数:

(我认为您会收到此错误,因为您的程序没有此构造函数。如果添加此构造函数,该错误将消失。)

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"); } } ,而是可以将文本附加到txtarea.setText()变量中,并在末尾仅调用一次String

答案 1 :(得分:0)

如果要从其他窗格访问一个Jtable的内容,可以在这里做的一件事是,创建数组维将取决于数据类型,例如,如果有两列,则将有两个维等等。

在这里,您可以将向表提供数据的那个数组设为静态或公共数组,并从其他窗格访问内容。

这是示例代码:

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(); 
    } 
} 

现在,数组数据是公共的,因此您可以从其他场景访问它。