Was ist hier falsch?
lima-city → Forum → Programmiersprachen → Java
befehl
beispiel
beitrag
betreff
board
catch
daten
datenmenge
fenster
import
komponente
main
null
nummer
packen
pms
schauen
schwersten komponenten
tabelle
tutorial
-
Ich hab ein Prog geschrieben was PMs abfragt, allerdings geht das ne so ganz, warum? Wie kann ich in einem Swing programm eine selbst deklarierete Variable ausgeben? hier mein code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class VocamusPM extends JFrame
{
VocamusPM(String titel)
{
super(titel);
setLayout(new FlowLayout());
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main (String args[]) {
VocamusPM fenster = new VocamusPM("Vocamus PM");
fenster.pack();
fenster.setSize(300,75);
fenster.setVisible(true);
}
public void paint(Graphics g) {
MySQL.verbinden();
MySQL.auslesen();
}
}
und
import java.sql.*;
import java.awt.*;
public class MySQL {
String name;
String betreff;
String von;
int id;
int nummer;
String abgefragt;
MySQL() {
}
public static void verbinden() {
// Treiber laden
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch (Exception e) {
System.out.println("JDBC/ODBC-Treiber konnte nicht geladen werden.");
return;
}
// Verbindung zu Datenbank aufbauen
Statement befehl = null;
Connection verbindung = null;
try {
verbindung = DriverManager.getConnection (
"jdbc:mysql://mysql.lima-city.de/DB199576841",
"USER46908",
"meinPW");
befehl = verbindung.createStatement();
}
catch (Exception e) {
System.err.println("Verbindung zu konnte nicht hergestellt werden");
}
}
public static void auslesen() {
// Daten auslesen
try {
ResultSet datenmenge;
datenmenge = befehl.executeQuery("SELECT * FROM PM ORDER BY Name;");
// Einzelne Datens?tze ausgeben
while(datenmenge.next()) {
name = datenmenge.getString("Name");
betreff = datenmenge.getString("Betreff");
von = datenmenge.getString("Von");
id = datenmenge.getInt("ID");
nummer = datenmenge.getInt("Nummer");
abgefragt = datenmenge.getString("Abgefragt");
verbindung.close()
catch (Exception e) {
e.printStackTrace();
}
}}
} -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Gehe ich richtig der Annahme, Du willst die aus der Datenbank gefundenen Eintr?ge irgendwie ausgeben lassen?
Wenn ja, was hast Du f?r eine Swing-Komponente, die Du mit den Eintr?gen f?llen m?chtest?
Beitrag ge?ndert am 27.01.2006 02:31 von puni -
ich wollte das mit drawString() ausgeben. ja du liegst richtig
-
Okay, mit drawString sollte das kein Problem werden.
Du ?berlagerst einfach die paint-Methode je nach Geschmack und Bedarf:
Beispiel:
public void paint(Graphics g){
g.setColor(Color.blue);
g.drawString(MySQL.name, 5, 5); // 5 pixel von links & von oben
}
Problematischerweise musst Du nach jedem eingelesenen Wert die Position (5, 5) ver?ndern,
weil der String sonst ?berschrieben wird.
Ich rate Dir auf effektive Swing-Komponenten umzusteigen,
zum Beispiel JTable. -
Ich habs jetzt mit ner JTable gemacht. Aber wie kommt da jetzt das mit der Datenbank rein?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class DB extends JFrame {
JMenuBar menueleiste;
JMenu menu0, menu1, menu2, menu3;
JMenuItem item01, item02, item1, item2, item3, item4,item5, item6, item7, item8, item9, item10;
String[][] Daten = new String[][] {
{"samson","Hi","24:89 Uhr","jesus"},{"samson","Hallo","15:56 Uhr","5Hotel"}
};
String[] ?berschrift = new String[] {"An","Betreff","Zeit","Von"};
class ALauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {
item01.setText("Guden");
}
}
class ALauscher2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
item02.setText("Tach");
}
}
DB (String titel) {
super(titel);
JTable Tabelle;
Tabelle = new JTable (Daten,?berschrift);
getContentPane().add( new JScrollPane( Tabelle ) );
Tabelle.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
Tabelle.getColumn( "An" ).setPreferredWidth( 100 );
Tabelle.getColumn( "Betreff" ).setPreferredWidth( 100 );
Tabelle.getColumn( "Zeit" ).setPreferredWidth( 80 );
Tabelle.getColumn( "Von" ).setPreferredWidth( 100 );
menueleiste = new JMenuBar();
menu0 = new JMenu("Datei");
item01 = new JMenuItem("PMs abfragen");
item02 = new JMenuItem("Beenden");
menu1 = new JMenu("PM");
item1 = new JMenuItem("Neu");
item2 = new JMenuItem("Abfragen");
item3 = new JMenuItem("L?schen");
item4 = new JMenuItem("?ndern");
menu2 = new JMenu("Konto");
item5 = new JMenuItem("Erstellen");
item6 = new JMenuItem("Liste");
item7 = new JMenuItem("L?schen");
item8 = new JMenuItem("?ndern");
menu3 = new JMenu("Hilfe");
item9 = new JMenuItem("FAQs");
item10 = new JMenuItem("Onlinesupport");
menu0.add(item01);
menu0.add(item02);
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
menu2.add(item5);
menu2.add(item6);
menu2.add(item7);
menu2.add(item8);
menu3.add(item9);
menu3.add(item10);
menueleiste.add(menu0);
menueleiste.add(menu1);
menueleiste.add(menu2);
menueleiste.add(menu3);
setLayout(new FlowLayout());
setJMenuBar(menueleiste);
//ActionsListener
item01.addActionListener(new ALauscher());
item02.addActionListener(new ALauscher2());
//Anwendung schlie?en
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
DB f = new DB("VocamusPM");
f.pack();
f.setVisible(true);
}
} -
Du musst alles ?ber ein TableModel laufen lassen.
Okay, Du MUSST nicht, aber es ist der einfachste Weg:
Deine MySQL-Klasse muss Daten (Vector w?re vorteilhaft) an das TableModel ?bergeben,
wo die Daten dann verarbeitet werden (z.B. sortiert usw.).
Das TableModel gibt die Daten dann an die JTable-Komponente weiter und stellt sie dar.
JTable ist leider eine der schwersten Komponenten von Swing,
deshalb:
http://www.lima-city.de/boards.php?m=thread&id=43719
Schau Dir das Tutorial mal an.
Hier scheints nicht arg viele Java-Spezis zu geben.
Beitrag ge?ndert am 30.01.2006 01:57 von puni -
puni schrieb:
Du musst alles ?ber ein TableModel laufen lassen.
Okay, Du MUSST nicht, aber es ist der einfachste Weg:
Deine MySQL-Klasse muss Daten (Vector w?re vorteilhaft) an das TableModel ?bergeben,
wo die Daten dann verarbeitet werden (z.B. sortiert usw.).
Das TableModel gibt die Daten dann an die JTable-Komponente weiter und stellt sie dar.
JTable ist leider eine der schwersten Komponenten von Swing,
deshalb:
http://www.lima-city.de/boards.php?m=thread&id=43719
ich kenn das tut aber habs net gerafft
Schau Dir das Tutorial mal an.
Hier scheints nicht arg viele Java-Spezis zu geben.
Beitrag ge?ndert am 30.01.2006 01:57 von puni -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage