Hi
ich versuche schon seit Stunden eine "einfache" DB-Abfrage in Java zu programmieren. Leider funzt das ganze immer noch nich so wie ich mir das vorstelle.
Vorstellung: JComboBox bietet verschiedene Industriebranchen zur Auswahl an, welche in DB hinterlegt sind (funzt). Nach Auswahl einer Industriebranche wird wird erneut eine DB-Abfrage ausgeführt u. eine zweite JComboBox zeigt die Companies der ausgewählten Branche an.
Folgende Fehler tretten auf:
1. Nach Auswahl einer Industriebranche wird das Ergebnis der Abfrage zweimal ausgegeben.
2. Zweite JComboBox wird nicht ausgegeben - Fehler in zweiter Abfrage!?
Mich würde noch interessieren ob man den Quellcode nich irgendwie auslagern kann auf verschiedene Klassen, da n bischen unübersichtlich..
Kann mir da jemand weiterhelfen!?
Danke
ich versuche schon seit Stunden eine "einfache" DB-Abfrage in Java zu programmieren. Leider funzt das ganze immer noch nich so wie ich mir das vorstelle.
Vorstellung: JComboBox bietet verschiedene Industriebranchen zur Auswahl an, welche in DB hinterlegt sind (funzt). Nach Auswahl einer Industriebranche wird wird erneut eine DB-Abfrage ausgeführt u. eine zweite JComboBox zeigt die Companies der ausgewählten Branche an.
Folgende Fehler tretten auf:
1. Nach Auswahl einer Industriebranche wird das Ergebnis der Abfrage zweimal ausgegeben.
2. Zweite JComboBox wird nicht ausgegeben - Fehler in zweiter Abfrage!?
Mich würde noch interessieren ob man den Quellcode nich irgendwie auslagern kann auf verschiedene Klassen, da n bischen unübersichtlich..
Kann mir da jemand weiterhelfen!?
Danke
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.*;
import java.sql.*;
//import org.jfree.ui.RefineryUtilities;
public class analysisListener implements ActionListener
{
private JFrame oldFrame;
private JPanel oldContent, oldPanel;
private JComboBox choseIndustry = new JComboBox();
private JComboBox choseCompany = new JComboBox();
private JPanel selectPanel = new JPanel();
public analysisListener(JPanel c)
{
oldContent = c;
}
// public void actionPerformed (ActionEvent e)
// {
// newFrame.setVisible(true);
// oldFrame.setVisible(false);
// }
//
public void actionPerformed (ActionEvent e)
{
oldContent.removeAll();
oldContent.setLayout(new BorderLayout());
selectPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel industryLabel = new JLabel("Industry:");
selectPanel.add(industryLabel);
Database db = new Database();
try
{
String sql = "SELECT industry_sector FROM industry";
db.request(sql);
while (db.result.next())
{
System.out.println("found a result");
String industry = db.result.getString("industry_sector");
choseIndustry.addItem(industry);
} //end while industry
selectPanel.add(choseIndustry);
choseIndustry.addItemListener(new ItemListener()
{
public void itemStateChanged(ItemEvent e)
{
int which = choseIndustry.getSelectedIndex();
String selectedIndustry = (String)choseIndustry.getItemAt(which);
System.out.println("Chosen industry: " +selectedIndustry); // HIER wird das Ergebnis 2x ausgegeben.
//////////////////////////////////////////
if(e.getStateChange() == ItemEvent.SELECTED)
{
Database db = new Database();
try
{
String sql = "SELECT companies.company_name FROM companies, industry WHERE industry.industry_sector = selectedIndustry AND industry.industry_sector_id = companies.industry_sector_id";
db.request(sql);
while (db.result.next()) //HIER passiert gar nichts mehr
{
String company = db.result.getString("company_name");
choseCompany.addItem(company);
selectPanel.add(choseCompany);
//choseCompany.addItemListener(new ItemListener());
}
}
catch(SQLException ex)
{
System.out.println("* Cannot create dataset! *");
ex.printStackTrace();
}
} //end if
/////////////////////////////////
}//end method itemStateChanged
}//end inner class Item Listener
);//end call addItemListener
} //end try industry
catch(SQLException ex)
{
System.out.println("* Cannot create dataset! *");
ex.printStackTrace();
}
oldContent.add(selectPanel, BorderLayout.WEST);
oldContent.revalidate();
}
}