【问题标题】:How to pass the Jtable data in to one frame to another in java netbeansjava - 如何在java netbeans中将Jtable数据传递到一帧到另一帧
【发布时间】:2019-01-13 14:09:25
【问题描述】:

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

销售系统截图

Jtable 代码

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

    });

这样我将数据添加到 JTable 中,我需要将数据传递给打印框架。 我试过这种方式
新打印(总计,jTable1.getModel()).setVisible(真); 但显示错误没有找到合适的构造器

打印收据

Pos.java

String total = txttotal.getText();        
new print(total,jTable1.getModel()).setVisible(true);

打印.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");

}

【问题讨论】:

标签: java swing jframe jtable


【解决方案1】:

如果你想调用像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()

【讨论】:

  • new print(total,jTable1.getModel()) 出现错误但显示错误没有找到合适的构造器
  • 是的,所以如果你添加这个我写到print类的构造函数,错误应该会消失。
  • 新打印(total,jTable1.getModel()); error 显示类型为(String,jTable1.getModel()) 错误。
  • 您是否添加了我的解决方案中给出的构造函数(public print(String total, TableModel tableModel))?
  • 新打印(total,jTable1.getModel());现在可以了,没有显示错误,但是当我单击打印按钮时,什么也没有发生
【解决方案2】:

如果您想从另一个窗格访问一个 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(); 
    } 
} 

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

【讨论】:

  • 你能把代码写得通俗易懂吗?先生
  • 如果不是先生有没有办法打印 JTable 和 jtextfield 数据先生
  • 是的,您可以在 PDF 或任何其他文档中打印 Jtable 数据,然后打印该文档。
  • 为此目的使用以下 YouTube 视频作为教程 youtu.be/yhqu-NG-AzY
猜你喜欢
  • 1970-01-01
  • 2020-06-16
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
相关资源
最近更新 更多