Java JTable运行时计算?
这是我小组项目的一部分。当我输入客户id并按OK时,客户详细信息以表格格式显示。该表包含以下列:星期日、费率、星期六、, 价格,其他,价格一样 我的问题是我想输入整数,计算它,然后将它存储在数据库中。表示表中的运行时间,我要输入数字,计算并需要存储在数据库中。怎么办?提前谢谢Java JTable运行时计算?,java,swing,ms-access,jdbc,odbc,Java,Swing,Ms Access,Jdbc,Odbc,这是我小组项目的一部分。当我输入客户id并按OK时,客户详细信息以表格格式显示。该表包含以下列:星期日、费率、星期六、, 价格,其他,价格一样 我的问题是我想输入整数,计算它,然后将它存储在数据库中。表示表中的运行时间,我要输入数字,计算并需要存储在数据库中。怎么办?提前谢谢 import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.aw
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.*;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.table.DefaultTableModel;
public class TestTable
{
public static void main(String[] args)
{
TestTable testTable = new TestTable();
}
public TestTable()
{
EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new TestTable.Bill());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class Bill extends JPanel implements ActionListener ,CellEditorListener
{
JTextField textFieldId;
JLabel l1;
JLabel l2;
JButton b1,b2,b3;
JTextField sun,sunr,sat,satr,oth,othr;
float sum1,totall;
ResultSet rs1 = null;
DefaultTableModel model = new DefaultTableModel();
private int rows;
Double value;
public Bill()
{
setLayout(new BorderLayout());
JPanel fields = new JPanel();
textFieldId = new JTextField(10);
l1 = new JLabel("New Customer Entry :-");
l2 = new JLabel("Customer Id");
b1 = new JButton("OK");
b2 = new JButton("Calculate");
b3 = new JButton("Print");
fields.add(l2);
fields.add(textFieldId);
fields.add(b1);
fields.add(b2);
fields.add(b3);
add(fields, BorderLayout.NORTH);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
// Don't forget to add a table.
add(new JScrollPane(new JTable(model)));
}
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("You clicked the button");
Connection con;
if (e.getSource() == b1)
{
PreparedStatement ps = null;
Statement stmt = null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:devendra");
ps = con.prepareStatement("SELECT * FROM Customer where Customer_Id = ?");
// You must bind the parameter with a value...
ps.setString(1, textFieldId.getText());
rs1 = ps.executeQuery();
model.addColumn("Customer_Id");
model.addColumn("Customer_Name");
model.addColumn("Contact");
model.addColumn("Paper_Name");
model.addColumn("Sunday");
model.addColumn("Rate");
model.addColumn("Satarday");
model.addColumn("Rate");
model.addColumn("Other Day");
model.addColumn("Rate");
model.addColumn("Price");
model.setRowCount(0);
while (rs1.next())
{
model.addRow(new Object[]{rs1.getString(1),rs1.getString(2),rs1.getString(3),rs1.getString(4),rs1.getString(5),
rs1.getString(6),rs1.getString(7),rs1.getString(8),rs1.getString(9),rs1.getString(10)});
}
// Vector data = model.getDataVector();
JOptionPane.showMessageDialog(null, "You successfully Enter the Entry");
}
catch (SQLException s)
{
System.out.println("SQL code does not execute.");
JOptionPane.showMessageDialog(null, "Please Enter the Detail Correctly");
} catch (Exception exp)
{
JOptionPane.showMessageDialog(this, "Failed to perform query: " + exp.getMessage());
} finally
{
try {
ps.close();
}
catch (Exception ex)
{
}
}
}
if (e.getSource() == b2)
{
int rowCount = model.getRowCount();
for(int i =1; i<rowCount;i++)
{
Double valuea = (Double) model.getValueAt(i, 5 );
Double valueb = (Double) model.getValueAt(i, 6 );
Double valuec = (Double) model.getValueAt(i, 7 );
Double valued = (Double) model.getValueAt(i, 8 );
Double valuee = (Double) model.getValueAt(i, 9 );
Double valuef = (Double) model.getValueAt(i, 10 );
double value;
value = Double.parseDouble( String.valueOf( valuea ) ) * Double.parseDouble( String.valueOf( valueb ) );
model.setValueAt( value, i, 10 );
}
}
}我看不出您的
插入如何成功:括号不平衡,以及setValueAt()
-是否实际调用了它的文本返回无效;检查日志。您似乎在插入单个属性,而客户
关系有11个属性。如果您打算更新Total
属性,请注意,您的模式违反了,因为Total
依赖于其他属性的子集。请咨询您的小组,了解如何更正架构。将您的sum1
公式重新分解为一种方法,该方法可以在显示Total
时重复使用。我认为您的代码不正确。如何添加行或列。我认为需要提供表格模型
,当您将所有内容添加到表格模型时,还需要创建一个新的函数
,用于计算总和。还可以在构造函数中添加列,即仅添加一次。请咨询您的团队。我想输入数字,计算[并]存储在数据库中。什么阻止了你?您的UPDATE
语句在哪里?您正在要求某人使用支持较差的驱动程序调试/修改针对无法访问的数据库上的隐含模式运行的冗长代码。L&F应该是无关的,并且只需要一个数据库属性。请编辑您的问题,以包含显示问题的。我刚刚编辑了代码。当我运行这些代码时,它会成功执行,但我没有按照我的要求提供正确的输出。现在该怎么办?请告诉我???请在您的系统中调试这些代码。当表格出现时,我在列前面手动输入条目,其中列从星期日开始,以费率结束,整个计算显示在总计列中。。我的团队会大肆宣扬如何执行这些代码。@ TasHuod,如果你可以帮助我解决这些问题:)请运行在你的系统中。也可以考虑一个<代码>模型。AdDROW()/Case>方法,而不是<代码> MultDeaVaCeCurror()/代码>。你对这些问题有什么建议吗?事实上,如果我们有任何想法或解决方案,然后我们编辑代码,我们都不知道更多。但是你也帮我解决了这些问题。谢谢你的帮助…ADefaultTableModel
是一个TableModel
。你能给我一个教程链接吗?从这个链接我可以学到更多…?嗯。。这是一个很长的代码,没有人会在他的电脑上编译它,编辑它的要点。我认为您正在表中显示数据。但计算不正确。您想要计算什么,基于哪些标准和来自哪些字段?从表中得到6个值,但只乘以2。另外,您没有捕获异常,这可能是问题所在。或者在你的电脑上逐行调试你的代码,这样问题就解决了。我判断你是印度人?我说得对吗?
@Override
public void editingStopped(ChangeEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void editingCanceled(ChangeEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}