import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class cost extends JFrame{
private JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;
private JTextField jtf1,jtf2,jtf3,jtf4;
private JButton butOk;
private JComboBox jcb1,jcb2,jcb3,jcb4;
public cost(){
super("费用管理");
initComponent();
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(600,500);
pack();
}
public void initComponent(){
jl1=new JLabel("平均水费");
jl2=new JLabel("平均电费");
jl3=new JLabel("物业管理费");
jl4=new JLabel("停车费");
jl5=new JLabel("用水量");
jl6=new JLabel("用电量");
jl7=new JLabel("有效面积");
jl8=new JLabel("总费用");
jcb1=new JComboBox();
jcb2=new JComboBox();
jcb3=new JComboBox();
jcb4=new JComboBox(); jtf1=new JTextField(10);
jtf2=new JTextField(10);
jtf3=new JTextField(10);
jtf4=new JTextField(10);
butOk=new JButton("计算");
getContentPane().setLayout(null);
getContentPane().add(jl1);
jl1.setBounds(30,30,70,30);
getContentPane().add(jl2);
jl2.setBounds(30,80,70,30);
getContentPane().add(jl3);
jl3.setBounds(30,130,70,30);
getContentPane().add(jl4);
jl4.setBounds(30,180,70,30);
getContentPane().add(jl5);
jl5.setBounds(250,30,70,30);
getContentPane().add(jl6);
jl6.setBounds(250,80,70,30);
getContentPane().add(jl7);
jl7.setBounds(250,130,70,30);
getContentPane().add(jl8);
jl8.setBounds(280,250,70,30);
getContentPane().add(jcb1);
jcb1.setBounds(120,30,100,30);
getContentPane().add(jcb2);
jcb2.setBounds(120,80,100,30);
getContentPane().add(jcb3);
jcb3.setBounds(120,130,100,30);
getContentPane().add(jcb4);
jcb4.setBounds(120,180,100,30); getContentPane().add(jtf1);
jtf1.setBounds(340,30,100,30);
getContentPane().add(jtf2);
jtf2.setBounds(340,80,100,30);
getContentPane().add(jtf3);
jtf3.setBounds(340,130,100,30);
getContentPane().add(jtf4);
jtf4.setBounds(370,250,100,30);
getContentPane().add(butOk);
butOk.setBounds(100,250,70,30);
database.joinDB();
String sql="select 平均水费,平均电费,物业费,停车费 from 费用表"; try{
if(database.query(sql)){
while(database.rs.next()){
String shuifei=database.rs.getString("平均水费");
String dianfei=database.rs.getString("平均电费");
String wuyefei=database.rs.getString("物业费");
String tingchefei=database.rs.getString("停车费");
jcb1.addItem(shuifei);
jcb2.addItem(dianfei);
jcb3.addItem(wuyefei);
jcb4.addItem(tingchefei);
}
}
} catch(Exception ea){}
butOk.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
if(jtf1.getText().equals("")){
new JOptionPane().showMessageDialog(null,"用水量不能为空");
}
else if(jtf2.getText().equals("")){
new JOptionPane().showMessageDialog(null,"用电量不能为空");
}
else{
int index1=jcb1.getSelectedIndex();
int index2=jcb2.getSelectedIndex();
int index3=jcb3.getSelectedIndex();
int index4=jcb4.getSelectedIndex();
int index5=new Integer(jtf1.getText()).intValue();
int index6=new Integer(jtf2.getText()).intValue();
int index7=new Integer(jtf3.getText()).intValue();
int a=index1*index5+index2*index6+index3*index7+index4;
jtf4.setText(String.valueOf(a));
}
}
});
}
public static void main(String args[]){
cost newone= new cost();
}
}
计算结果就是出不来,一直计算是0
import java.awt.event.*;
import javax.swing.*;
public class cost extends JFrame{
private JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;
private JTextField jtf1,jtf2,jtf3,jtf4;
private JButton butOk;
private JComboBox jcb1,jcb2,jcb3,jcb4;
public cost(){
super("费用管理");
initComponent();
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(600,500);
pack();
}
public void initComponent(){
jl1=new JLabel("平均水费");
jl2=new JLabel("平均电费");
jl3=new JLabel("物业管理费");
jl4=new JLabel("停车费");
jl5=new JLabel("用水量");
jl6=new JLabel("用电量");
jl7=new JLabel("有效面积");
jl8=new JLabel("总费用");
jcb1=new JComboBox();
jcb2=new JComboBox();
jcb3=new JComboBox();
jcb4=new JComboBox(); jtf1=new JTextField(10);
jtf2=new JTextField(10);
jtf3=new JTextField(10);
jtf4=new JTextField(10);
butOk=new JButton("计算");
getContentPane().setLayout(null);
getContentPane().add(jl1);
jl1.setBounds(30,30,70,30);
getContentPane().add(jl2);
jl2.setBounds(30,80,70,30);
getContentPane().add(jl3);
jl3.setBounds(30,130,70,30);
getContentPane().add(jl4);
jl4.setBounds(30,180,70,30);
getContentPane().add(jl5);
jl5.setBounds(250,30,70,30);
getContentPane().add(jl6);
jl6.setBounds(250,80,70,30);
getContentPane().add(jl7);
jl7.setBounds(250,130,70,30);
getContentPane().add(jl8);
jl8.setBounds(280,250,70,30);
getContentPane().add(jcb1);
jcb1.setBounds(120,30,100,30);
getContentPane().add(jcb2);
jcb2.setBounds(120,80,100,30);
getContentPane().add(jcb3);
jcb3.setBounds(120,130,100,30);
getContentPane().add(jcb4);
jcb4.setBounds(120,180,100,30); getContentPane().add(jtf1);
jtf1.setBounds(340,30,100,30);
getContentPane().add(jtf2);
jtf2.setBounds(340,80,100,30);
getContentPane().add(jtf3);
jtf3.setBounds(340,130,100,30);
getContentPane().add(jtf4);
jtf4.setBounds(370,250,100,30);
getContentPane().add(butOk);
butOk.setBounds(100,250,70,30);
database.joinDB();
String sql="select 平均水费,平均电费,物业费,停车费 from 费用表"; try{
if(database.query(sql)){
while(database.rs.next()){
String shuifei=database.rs.getString("平均水费");
String dianfei=database.rs.getString("平均电费");
String wuyefei=database.rs.getString("物业费");
String tingchefei=database.rs.getString("停车费");
jcb1.addItem(shuifei);
jcb2.addItem(dianfei);
jcb3.addItem(wuyefei);
jcb4.addItem(tingchefei);
}
}
} catch(Exception ea){}
butOk.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
if(jtf1.getText().equals("")){
new JOptionPane().showMessageDialog(null,"用水量不能为空");
}
else if(jtf2.getText().equals("")){
new JOptionPane().showMessageDialog(null,"用电量不能为空");
}
else{
int index1=jcb1.getSelectedIndex();
int index2=jcb2.getSelectedIndex();
int index3=jcb3.getSelectedIndex();
int index4=jcb4.getSelectedIndex();
int index5=new Integer(jtf1.getText()).intValue();
int index6=new Integer(jtf2.getText()).intValue();
int index7=new Integer(jtf3.getText()).intValue();
int a=index1*index5+index2*index6+index3*index7+index4;
jtf4.setText(String.valueOf(a));
}
}
});
}
public static void main(String args[]){
cost newone= new cost();
}
}
计算结果就是出不来,一直计算是0
是不是错了啊?
getSelectedText();
另外sql里面用中文不太好吧....建议调试一下,或者用out.print()
这个问题不难.
这一句是获取选中的序号,不符合你的要求,你如果一直选中第一个,永远是0。改成:
int index1 = Integer.valueOf(jcb1.getSelectedItem().toString());
其他几个JCombobox的值依次类推,跨好里的最好做下是否为空判断。
另外jtf1.getText(),写成jtf1.getText().trim();
int需要改成Integer,改了后int a=index1*index5+index2*index6+index3*index7+index4;
又出现问题,说"the operation * is undefined for the arguments type java.lang.Integer.java.lang.Integer"
这样的话应该没有问题吧,自己试试
if (jtf1.getText().equals("")) {
new JOptionPane().showMessageDialog(null, "用水量不能为空");
} else if (jtf2.getText().equals("")) {
new JOptionPane().showMessageDialog(null, "用电量不能为空");
} else {
double index1 = new Double(jcb1.getSelectedItem()
.toString());
double index2 = new Double(jcb2.getSelectedItem()
.toString());
double index3 = new Double(jcb3.getSelectedItem()
.toString());
double index4 = new Double(jcb4.getSelectedItem()
.toString());
double index5 = new Double(jtf1.getText()).intValue();
double index6 = new Double(jtf2.getText()).intValue();
double index7 = new Double(jtf3.getText()).intValue(); double a = index1 * index5 + index2 * index6 + index3
* index7 + index4;
jtf4.setText(String.valueOf(a));
}
}
});
把这些代码替换你的那个试试看
JComboBox中
int getSelectedIndex()
返回列表中与给定项匹配的第一个选项。
Object getSelectedItem()
返回当前所选项 JTextField
getText()
返回此 TextComponent 中包含的文本。比较简单的 看你代码一大堆,不懂得属性就看API
前提:你的界面能正常出来,jcombobox中也有东东了,按钮事件也能正常触发;
int comSelectedContent = Integer.parseInt(jcb1.getSelectedItem().toString()); //获取当前选择的jcombobox的内容,并转成基本类型;这类问题正如各楼说的,耐心一点,用一把调试或是System.out.println();就都能解决