简体   繁体   中英

Getting a row of names from the first column of JTable

I have a JTable with the column names " Names " , " Quantity " and " Unit " . I'm coding a program where you get the ingredients names. So i need to get the whole row of one column and String it all up together, because i need to store it in mySql and i have already set it all as String. Any idea how i can do this ? My code are as follows :

JTable Code:

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

Getting the values and for storing :

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

This is for loop is wrong and it does not work because i have a constructor to take in Ingredients but because it is inside the loop, it cannot take it in. Any suggestions please ? Thank you.

Constructor :

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

e2.createFood();

I'm coding a program where you get the ingredients names. So i need to get the whole row of one column and String it all up together, because i need to store it in mySql and i have already set it all as String.

Want to do so, try this. Here I am getting result into ArrayList and String , as I am commented ArrayList you can avoid it.

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 产量

String=MoniJhonMax

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM