如何从组合框更新表格的单元格?

时间:2014-03-03 03:27:43

标签: java swing jtable jcombobox

enter image description here

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import net.java.dev.designgridlayout.DesignGridLayout;
import java.io.*;
import net.java.dev.designgridlayout.Tag;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;  
import java.sql.*;

class table1
{
JFrame JF;
Container C;
JPanel JP;
JLabel creditLabel;
JComboBox credit;
String[] Credit = {"Vasan Phalke", "Pansare", "Anil Kg", "Suresh"};
String[] Names = {"Name", "Qty", "Rate/ Kg", "Rate/Dzn.", "Total Amt."};
JTable table;
DefaultTableModel model;
JScrollPane scrollPane;

public table1()
{
JF = new JFrame();
JP = new JPanel();
C= JF.getContentPane();
JF.pack();
JF.setLocationRelativeTo(null); 
JF.setVisible(true);    

DesignGridLayout layout = new DesignGridLayout(C);

creditLabel = new JLabel("Credit");
credit = new JComboBox<String>(Credit);
model = new DefaultTableModel(Names,5);
    table =new JTable(model){@Override
public boolean isCellEditable(int arg0, int arg1)
{
    return true;
}
               };


  scrollPane= new JScrollPane(table);

layout.row().grid(creditLabel).add(credit);
layout.emptyRow();
layout.row().grid().add(table);

C.add(JP);
}

public static void main(String args[])
{
new table1();
}
}

通过点击组合框的值,它应该出现在表格的名称列中,并且应该对表格进行哪些更改以进行自动计算,即当我输入数量和比率时,应自动计算总金额。 如何完成所有这些事情,请帮忙。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

阅读How to Use Tables

上的Swing教程中的部分

本教程介绍如何使用组合框作为表中列的编辑器。这是你应该做的,而不是单独的组合框。

要计算金额,您需要创建自定义TableModel并覆盖setValueAt()方法。每当数量或费率发生变化时,您都会重新计算金额。