Hallo erstmal,
nach langen suchen weiß ich leider nicht mehr so ganz weiter ???:L
Hier meine Situation:
Ich will eine Kühlschranksteuerung erstellen und bei dieser greife ich auf eine Datenbank (MySQL) zu.
Habe 2 Comboboxen die einander abhängige Werte liefern sollen.
Als Beispiel Combobox 1 kann man auswählen Fleisch, Obst, Gemüse und in der Combobox 2 sollen die ermittelten Detailwerte aus der Combobox auswählbar sein
Als Beispiel Box 1 Obst --- Box 2 Apfel, Banane , Orange etc
Mein Problem ist ich habe keine Ahnung wie ich die zweite Combobox in Abhängigkeit setze :bahnhof:
Vielleicht hatte eine/r das selbe Problem und zufällig eine Lösung für mich parat.
Hier noch der Java Code:
Danke schonmal für eure Hilfe
nach langen suchen weiß ich leider nicht mehr so ganz weiter ???:L
Hier meine Situation:
Ich will eine Kühlschranksteuerung erstellen und bei dieser greife ich auf eine Datenbank (MySQL) zu.
Habe 2 Comboboxen die einander abhängige Werte liefern sollen.
Als Beispiel Combobox 1 kann man auswählen Fleisch, Obst, Gemüse und in der Combobox 2 sollen die ermittelten Detailwerte aus der Combobox auswählbar sein
Als Beispiel Box 1 Obst --- Box 2 Apfel, Banane , Orange etc
Mein Problem ist ich habe keine Ahnung wie ich die zweite Combobox in Abhängigkeit setze :bahnhof:
Vielleicht hatte eine/r das selbe Problem und zufällig eine Lösung für mich parat.
Hier noch der Java Code:
Java:
public class Lebensmittel extends JFrame implements ActionListener {
/**
* @param Instanzvariablen
* werden erzeugt
*/
private JPanel jpnlWest;
private JPanel jpnlWestCenter;
private JPanel jpnlSouth = new JPanel();
private JPanel jpnlButton = new JPanel();
private JLabel jlblUeberschrift;
private JLabel jlblkategorie;
private JLabel jlblauswahl;
private JTable jtabTabelle;
private ImageIcon img1 = new ImageIcon(
Lebensmittel.class.getResource("eintragen.png"));
private JButton jbtEintragen = new JButton("Eintragen", img1);
private ImageIcon img2 = new ImageIcon(
Lebensmittel.class.getResource("müll.png"));
private JButton jbtAustragen = new JButton("Austragen", img2);
private JButton jbtScannen;
private ImageIcon img3 = new ImageIcon(
Lebensmittel.class.getResource("Home.png"));
private JButton jbtBeenden = new JButton(img3);
private Container cp;
private JScrollPane jsplebensmittel;
private JComboBox jcomboKat;
private JComboBox jcomboasw;
private String url = "jdbc:mysql://localhost:3306/fmanager";
private String username = "root";
private String password = "";
private Connection connection;
private String query1 = "SELECT * FROM Zutaten";
private ResultSet rs;
private PreparedStatement pst;
private Zutaten zutaten;
private Model model;
/**
* Erzeugt ein Fenster mit dem spezifizierten Titel.
*
*
* @param title
* Titel des Fensters
*
*/
public Lebensmittel(String title) {
super(title);
setSize(1250, 650);
setUndecorated(true);
cp = getContentPane();
cp.setLayout(new BorderLayout());
jpnlWest = new JPanel();
jpnlWestCenter = new JPanel();
erstellenWidgets();
setzenLayoutManager();
hinzufuegenWidgets();
sqlAusfuehrenAbfrage();
ActionListener();
comboBoxKategorie();
comboBoxAuswahl();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
/**
*
* Erstellt die Widgets fuer die GUI
*
*/
private void erstellenWidgets() {
jlblUeberschrift = new JLabel("Kühlschrankinhalt");
jlblUeberschrift.setFont(new Font("Arial", Font.PLAIN, 30));
jlblUeberschrift.setHorizontalAlignment(SwingConstants.CENTER);
jlblUeberschrift.setBackground(Color.BLACK);
jlblUeberschrift.setForeground(Color.WHITE);
jlblUeberschrift.setOpaque(true);
jlblUeberschrift.setPreferredSize(new Dimension(250, 30));
jlblkategorie = new JLabel("Kategorie");
jlblkategorie.setFont(new Font("Arial", Font.PLAIN, 20));
jlblauswahl = new JLabel("Lebensmittel");
jlblauswahl.setFont(new Font("Arial", Font.PLAIN, 20));
model = new Model();
jtabTabelle = new JTable(model);
jtabTabelle.setAutoCreateRowSorter(true);
jtabTabelle.setRowHeight(60);
jtabTabelle.setFont(new Font("Arial", Font.PLAIN, 30));
jsplebensmittel = new JScrollPane(jtabTabelle);
jsplebensmittel.getVerticalScrollBar().setPreferredSize(new Dimension(50, 0)); //Dicke der ScrollBar ändern
jcomboKat = new JComboBox();
jcomboKat.setFont(new Font("Calibri", Font.BOLD + Font.ITALIC, 24));
jcomboKat.setPreferredSize(new Dimension(210, 30));
jcomboasw = new JComboBox();
jcomboasw.setFont(new Font("Calibri", Font.BOLD + Font.ITALIC, 24));
jcomboasw.setPreferredSize(new Dimension(210, 30));
// jbtEintragen = new JButton("Eintragen");
jbtEintragen.setPreferredSize(new Dimension(210, 60));
jbtEintragen.setFont(new Font("Arial", Font.BOLD, 14));
// jbtAustragen = new JButton("Austragen");
jbtAustragen.setPreferredSize(new Dimension(210, 60));
jbtAustragen.setFont(new Font("Arial", Font.BOLD, 14));
jbtScannen = new JButton("Eintragen");
jbtScannen.setPreferredSize(new Dimension(210, 50));
jbtScannen.setFont(new Font("Arial", Font.BOLD, 14));
jbtBeenden.setPreferredSize(new Dimension(105, 70));
jbtBeenden.setFont(new Font("Arial", Font.BOLD, 14));
}
private void comboBoxKategorie() {
try {
String query = "SELECT * FROM lgruppe";
pst = (PreparedStatement) connection.prepareStatement(query);
rs = pst.executeQuery();
while (rs.next()) {
jcomboKat.addItem(rs.getString("LName"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private void comboBoxAuswahl() {
try {
String query = "SELECT * FROM zutaten";
pst = (PreparedStatement) connection.prepareStatement(query);
rs = pst.executeQuery();
while (rs.next()) {
jcomboasw.addItem(rs.getString("Name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
*
* Methode fuer die Erstellung des Layouts fuer die GUI
*
*/
private void setzenLayoutManager() {
cp.setLayout(new BorderLayout());
jpnlWest.setLayout(new BorderLayout());
jpnlWest.setPreferredSize(new Dimension(210, 200));
jpnlButton.setLayout(new FlowLayout());
jpnlButton.setPreferredSize(new Dimension(210, 130));
jpnlWestCenter.setLayout(new FlowLayout());
jpnlWestCenter.setPreferredSize(new Dimension(210, 200));
}
/**
*
* Methode zum hinzufuegen der Widgets auf das Layout
*
*/
private void hinzufuegenWidgets() {
cp.add(BorderLayout.NORTH, jlblUeberschrift);
cp.add(BorderLayout.CENTER, jsplebensmittel);
cp.add(BorderLayout.WEST, jpnlWest);
cp.add(BorderLayout.SOUTH, jpnlSouth);
jpnlWestCenter.add(jlblkategorie);
jpnlWestCenter.add(jcomboKat);
jpnlWestCenter.add(jlblauswahl);
jpnlWestCenter.add(jcomboasw);
jpnlWest.add(BorderLayout.SOUTH, jpnlButton);
jpnlButton.add(jbtEintragen);
jpnlButton.add(jbtAustragen);
jpnlWest.add(BorderLayout.NORTH, jpnlWestCenter);
jpnlSouth.add(jbtBeenden);
}
private void sqlAusfuehrenAbfrage() {
zutaten = null;
connection = MySQL.dbConnect(url, username, password);
rs = MySQL.returnQuery(connection, query1);
try {
while (rs.next()) {
zutaten = new Zutaten(rs.getString(2));
model.addZutaten(zutaten);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void ActionListener() {
jcomboKat.addActionListener(this);
jcomboasw.addActionListener(this);
jbtEintragen.addActionListener(this);
jbtBeenden.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if (obj == jcomboKat) {
textfuellen();
}
if (obj == jcomboasw) {
textfuellen2();
}
// Home Befehl wenn Home Button betätigt wird
if (obj == jbtBeenden) {
dispose();
}
}
public void textfuellen() {
try {
String query = "SELECT * FROM lgruppe";
pst = (PreparedStatement) connection.prepareStatement(query);
pst.setString(1, (String) jcomboKat.getSelectedItem());
rs = pst.executeQuery();
while (rs.next()) {
}
pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void textfuellen2() {
try {
String query = "SELECT * FROM Zutaten";
pst = (PreparedStatement) connection.prepareStatement(query);
pst.setString(1, (String) jcomboasw.getSelectedItem());
rs = pst.executeQuery();
while (rs.next()) {
}
pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
Danke schonmal für eure Hilfe