Hi, ich habe bei zwei Klassen mit den msql-Abfragen Probleme.
Die erste Klasse ist ein Wörterbuch. Da möchte ich zusätzlich noch nach Oberbegriffen filtern können, so dass dann noch die Begriffe als Liste oder einfach nur als String mit Komma getrennt, ausgegeben werden.
In der Konsole funktioniert es auch soweit. Nur beim TextField in der Gui wird immer nur der letzte Begriff ausgegeben.
Meine Idee war es jetzt, das als Array zu gestalten. Nur das funktioniert nicht so recht. Vielleicht hat ja jemand eine andere Idee wie man es lösen könnte?
Das zweite Problem habe ich bei der Abfrage eines Passungsrechners. Wenn ich bei der if-abfrage die Toleranzen abfrage, gibt er mir mitunter die falschen werte. Bis Durchmesser(=id) 6 stimmen diese, dann ab Durchmesser 7 - also bei Sprung der Oberen Toleranzwerte - gibt er immer noch die alten aus.
Da der Code ähnlich dem vom Wörterbuch ist und da das Filtern zumindest in der Konsole klappt, müsste es eigentlich so klappen, dass zur id auch die dazugehörigen Werte ausgeben werden.
Ich hab jetzt kein Plan woran es happert. Vielleicht hat ja auch hierzu jemand eine Idee
LG und schönes Wochenende
Diana
Die erste Klasse ist ein Wörterbuch. Da möchte ich zusätzlich noch nach Oberbegriffen filtern können, so dass dann noch die Begriffe als Liste oder einfach nur als String mit Komma getrennt, ausgegeben werden.
In der Konsole funktioniert es auch soweit. Nur beim TextField in der Gui wird immer nur der letzte Begriff ausgegeben.
Meine Idee war es jetzt, das als Array zu gestalten. Nur das funktioniert nicht so recht. Vielleicht hat ja jemand eine andere Idee wie man es lösen könnte?
Java:
package kendowoerterbuch;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
public class Woerterbuch extends JFrame implements ActionListener {
private JLabel text;
private JLabel oberbegriff;
private JLabel outputlb;
private JLabel oberbegrifflb;
private JTable jTable1;
private JTextField inputfield;
private JTextField inputfield2;
String txt;
String oberbegrifftxt;
public static void main(String[] args) {
new Woerterbuch();
}
public Woerterbuch() {
super ("Kendo-Wörterbuch");
getContentPane().setLayout(null);
text = new JLabel ("Zu suchender Begriff <Enter>: ");
{getContentPane().add(text);
text.setBounds(19, 50, 347, 33);
}
oberbegriff = new JLabel ("Oberbegriff <Enter>: ");
{getContentPane().add(oberbegriff);
oberbegriff.setBounds(19, 70, 347, 33);
}
oberbegrifflb = new JLabel ("Oberbegriff: "+oberbegrifftxt);
{getContentPane().add(oberbegrifflb);
oberbegrifflb.setBounds(19, 300, 347, 55);
}
outputlb = new JLabel ("Text: "+txt);
{getContentPane().add(outputlb);
outputlb.setBounds(19, 200, 347, 33);
}
inputfield = new JTextField(10);
inputfield.addActionListener(this);
getContentPane().add(inputfield);
inputfield.setBounds(250, 50, 70, 21);
inputfield2 = new JTextField(10);
inputfield2.addActionListener(this);
getContentPane().add(inputfield2);
inputfield2.setBounds(250, 80, 70, 21);
JButton suche = new JButton ("Suche!");
getContentPane().add(suche);
suche.setBounds(19, 150, 150, 21);
suche.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/?user=root2&password=geheim");
Statement stmt;
stmt = con.createStatement();
ResultSet rs;
String eingabe = inputfield.getText();
String oberbegrifftxt = inputfield2.getText();
rs = stmt.executeQuery("select * from KendoWB.wb");
if (rs.next()) {
eingabe.equals(rs.getString("begriff"));
System.out.println(rs.getString("txt"));
txt = rs.getString("txt");
outputlb.setText(txt);
} else
System.out.println("Kein Eintrag gefunden");
System.out.println(oberbegrifftxt);
while (rs.next()) {
if (oberbegrifftxt.equals(rs.getString("Typ"))) {
oberbegrifflb.setText(rs.getString("begriff"));
System.out.println(rs.getString("begriff"));
}
}
while (rs.next()) {
if (oberbegrifftxt.equals(rs.getString("Typ"))) {
String a;
oberbegrifflb.setText(a);
for (int i = 0; i < 20 ; i++){
String[] array = new String[20];
array[i] = rs.getString("begriff")
}
}
}
rs.close();
stmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setSize(500, 500);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String eingabe = inputfield.getText();
String oberbegrifftxt = inputfield2.getText();
}
}
Das zweite Problem habe ich bei der Abfrage eines Passungsrechners. Wenn ich bei der if-abfrage die Toleranzen abfrage, gibt er mir mitunter die falschen werte. Bis Durchmesser(=id) 6 stimmen diese, dann ab Durchmesser 7 - also bei Sprung der Oberen Toleranzwerte - gibt er immer noch die alten aus.
Da der Code ähnlich dem vom Wörterbuch ist und da das Filtern zumindest in der Konsole klappt, müsste es eigentlich so klappen, dass zur id auch die dazugehörigen Werte ausgeben werden.
Ich hab jetzt kein Plan woran es happert. Vielleicht hat ja auch hierzu jemand eine Idee
Java:
package passungsrechnersimple;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class GuiPassungsrechnerSimple extends JFrame implements ActionListener {
private JLabel text;
private JTextField inputfield;
public static void main(String[] args) {
new GuiPassungsrechnerSimple();
}
public GuiPassungsrechnerSimple() {
super ("Passungsrechner-Gui");
getContentPane().setLayout(null);
text = new JLabel ("Durchmesser<Enter>: ");
{getContentPane().add(text);
text.setBounds(19, 100, 347, 33);
}
inputfield = new JTextField(10);
inputfield.addActionListener(this);
getContentPane().add(inputfield);
inputfield.setBounds(180, 107, 70, 21);
JButton berechne = new JButton ("Berechne!");
getContentPane().add(berechne);
berechne.setBounds(19, 300, 150, 21);
berechne.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("test");
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setSize(500, 500);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String eingabe = inputfield.getText();
int a = Integer.parseInt (eingabe);
System.out.println(a);
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/?user=root2&password=geheim");
Statement stmt;
stmt = con.createStatement();
ResultSet rs;
rs = stmt.executeQuery("select * from Passungen.EinheitsPassung");
if (rs.next()) {
eingabe.equals((rs.getString("id")));
System.out.println(rs.getDouble("Obere Toleranz"));
System.out.println(+rs.getDouble("untere Toleranz"));
} else
System.out.println("Kein Eintrag gefunden");
rs.close();
stmt.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
LG und schönes Wochenende
Diana