1
私は3つのテーブルcountry(country_name)、state(state_name、country_name)、city(city_name、state_name)を含むcountryという名前のデータベースを持っており、ountry、state、cityをこのフレームが、コントロールはactionPerformedの下にif文第二()制御文がif文を通過していない
here is the image of console and frame
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class Admin extends Frame implements ActionListener
{
MenuBar mb;
Menu edit;
MenuItem country,state,city;
Label l1,l2,l3,l4,l5;
TextField t1,t2,t3;
Button b1,b2,b3;
Choice ch1,ch2;
String str1,str2,str3,str4;
Connection con;
PreparedStatement ps;
ResultSet rs;
public Admin()
{
super("Admin");
setLayout(null);
setSize(700,700);
mb=new MenuBar();
edit=new Menu("Edit");
country=new MenuItem("Add Country");
state=new MenuItem("Add State");
city=new MenuItem("Add City");
edit.add(country);
edit.add(state);
edit.add(city);
mb.add(edit);
country.addActionListener(this);
state.addActionListener(this);
city.addActionListener(this);
setMenuBar(mb);
setVisible(true);
try
{
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
con=DriverManager.getConnection
("jdbc:ucanaccess://D:/java/country.mdb");
}
catch(Exception e){}
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==country){
removeAll();
l1=new Label("Country Name");
t1=new TextField(20);
b1=new Button("Update");
l1.setBounds(150,100,100,25);
t1.setBounds(290,100,100,25);
b1.setBounds(280,140,70,25);
add(l1);
add(t1);
add(b1);
b1.addActionListener(this);
setVisible(true);
//System.out.println("Outside of if");
if(ae.getSource()==b1){
System.out.println("Inside of if");
try
{
ps=con.prepareStatement("insert into country
(country_name) values('"+t1.getText()+"')");
ps.executeUpdate();
}
catch(Exception e){}
}
//Add_country ob=new Add_country();
//ob.setVisible(true);
}
else if(ae.getSource()==state){
removeAll();
l2=new Label("Select Country");
ch1=new Choice();
l3=new Label("Add State");
t2=new TextField();
b2=new Button("Update");
l2.setBounds(150,100,100,25);
ch1.setBounds(290,100,100,25);
l3.setBounds(150,160,100,25);
t2.setBounds(290,160,100,25);
b2.setBounds(280,200,70,25);
add(l2);
add(ch1);
add(l3);
add(t2);
add(b2);
b2.addActionListener(this);
setVisible(true);
try
{
ps=con.prepareStatement("select country_name from country");
rs=ps.executeQuery();
while(rs.next())
{
str1=rs.getString("country_name");
ch1.addItem(""+str1);
}
if(ae.getSource()==b2){
System.out.println("sdfghjk");
str2=ch1.getSelectedItem();
ps=con.prepareStatement("insert into state
(state_name,country_name) values('"+t2.getText()+"','"+str2+"')");
ps.executeUpdate();
}
}
catch(Exception e){}
//Add_state obj=new Add_state();
//obj.setVisible(true);
}
else if(ae.getSource()==city){
removeAll();
l4=new Label("Select State");
ch2=new Choice();
l5=new Label("Add City");
t3=new TextField();
b3=new Button("Update");
l4.setBounds(150,100,100,25);
ch2.setBounds(290,100,100,25);
l5.setBounds(150,160,100,25);
t3.setBounds(290,160,100,25);
b3.setBounds(280,200,70,25);
add(l4);
add(ch2);
add(l5);
add(t3);
add(b3);
b3.addActionListener(this);
setVisible(true);
try
{
ps=con.prepareStatement("select state_name from state");
rs=ps.executeQuery();
while(rs.next())
{
str3=rs.getString("state_name");
ch2.addItem(""+str3);
}
if(ae.getSource()==b3){
System.out.println("sdfghjk");
str4=ch2.getSelectedItem();
ps=con.prepareStatement("insert into city
(city_name,state_name) values('"+t3.getText()+"','"+str4+"')");
ps.executeUpdate();
}
}
catch(Exception e){}
//Add_city obj=new Add_city();
//obj.setVisible(true);
}
}
public static void main(String s[])
{
Admin ob=new Admin();
}
}
のより良い管理を提供するためにHow to Use CardLayoutをお勧めしますか? –
最初にif文が実行されていますが、ネストされたifが機能していない場合 – PanicLion
==演算子を使用してオブジェクトを比較することはできません。 equals()メソッドを使用する必要があります。そのため、 "ae.getSource()== state" - 比較結果は期待される結果に現れることはありません。 – DiabolicWords