从JTable的第一列获取一行名称

时间:2014-02-09 15:34:42

标签: java string jtable

我有一个JTable,其列名为" Names "" Quantity "" Unit "。 我正在编写一个程序来获取成分名称。 所以我需要得到一列的整行并将它们串起来, 因为我需要将它存储在mySql中,我已经将它全部设置为String。 知道我怎么能这样做吗? 我的代码如下:

JTable代码:

DefaultTableModel model = (DefaultTableModel)table.getModel();  
if(!txtQty.getText().trim().equals("")){  

     model.addRow(new Object[]{ingCB.getSelectedItem().toString(),txtQty.getText(),unitCB.getSelectedItem().toString()});  
}else{  

     JOptionPane.showMessageDialog(null,"*Quantity field left blank");  
}  

获取值并存储:

for(int i = 1; i<= i ; i++){  
     ingredients = table.getName(); 
}  

这对for循环是错误的并且它不起作用,因为我有一个构造函数来接受Ingredients但是因为它在循环内部,它不能接受它。 有什么建议吗?谢谢。

构造函数:

Food e2 = new Food(Name, Description, priceDbl, Image, Category, Ingredients, promotion );

e2.createFood();

1 个答案:

答案 0 :(得分:1)

  

我正在编写一个程序,您可以在其中获取成分名称。所以我需要获取一列的整行并将它们串起来,因为我需要将它存储在mySql中,并且我已经将它全部设置为String。

想要这样做,试试这个。在这里,我得到的结果是ArrayListString,因为我评论ArrayList你可以避免它。

public class TableValuePrint extends JFrame implements ActionListener{
    private final JButton print;
    private final JTable table;
    private String str="";

    public TableValuePrint() {
        setSize(600, 300);
        String[] columnNames = {"A", "B", "C"};
        Object[][] data = {
            {"Moni", "adsad", "Pass"},
            {"Jhon", "ewrewr", "Fail"},
            {"Max", "zxczxc", "Pass"}
        };

        table = new JTable(data, columnNames);
        JScrollPane tableSP = new JScrollPane(table);
        JPanel tablePanel = new JPanel();
        tablePanel.add(tableSP);
        tablePanel.setBackground(Color.red);
        add(tablePanel);
        setTitle("Result");

        setSize(1000,700);

        print=new JButton("Print");  
        JPanel jpi1 = new JPanel();  
        jpi1.add(print);  
        tablePanel.add(jpi1,BorderLayout.SOUTH);      

        print.addActionListener(this);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                TableValuePrint ex = new TableValuePrint();
                ex.setVisible(true);
            }
        });
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
       if(ae.getSource()==print){
//         ArrayList list = new ArrayList();
for(int i = 0;i<table.getModel().getRowCount();i++)
{
//list.add(table.getModel().getValueAt(i, 0)); //get the all row values at column index 1
str=str+table.getModel().getValueAt(i,0).toString();
}
//System.out.println("List="+list);
System.out.println("String="+str);
        }
    }
}

<强>输出 output

  

的字符串= MoniJhonMax