Hey Leute,
hab mich jetzt schon tot-gesucht und verrückt-getestet. Ich möchte in einem JTable (bzw. dahinter) in meiner bestehenden GUI ein Hintergrundbild einfügen. Die GUI sieht folgendermaßen aus...
Wie kann ich das machen und wo im Code sollte es hin?
Bin langsam verzweifelt...
FallenAngelNRW
hab mich jetzt schon tot-gesucht und verrückt-getestet. Ich möchte in einem JTable (bzw. dahinter) in meiner bestehenden GUI ein Hintergrundbild einfügen. Die GUI sieht folgendermaßen aus...
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.sql.*;
public class GUI extends JPanel implements ActionListener, ListSelectionListener {
private Personalverwaltung ap;
private JTextField t1 = new JTextField(40);
private JTextField t2 = new JTextField(40);
private JTextField t3 = new JTextField(40);
private JTextField t4 = new JTextField(40);
private JLabel msg = new JLabel(" ");
private JTable table = new JTable();
private JTableHeader header;
public GUI(Personalverwaltung ap) {
this.ap = ap;
setLayout(new BorderLayout(5, 5));
JPanel p1 = new JPanel();
p1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
JButton b1 = new JButton("Anzeigen");
JButton b2 = new JButton("Einfügen");
JButton b3 = new JButton("Ändern");
JButton b4 = new JButton("Löschen");
JButton b5 = new JButton("Alle Personen");
JButton b6 = new JButton("Zurücksetzen");
b1.addActionListener(this);
...
b6.addActionListener(this);
p1.add(b1);
...
p1.add(b6);
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(4, 1, 5, 5));
p2.add(new JLabel("Pers.-Nr.", JLabel.RIGHT));
p2.setPreferredSize(new Dimension(150,20));
p2.add(new JLabel("Vorname", JLabel.RIGHT));
p2.add(new JLabel("Nachname", JLabel.RIGHT));
p2.add(new JLabel("Gehalts-Kl.", JLabel.RIGHT));
JPanel p3 = new JPanel();
p3.setLayout(new GridLayout(4, 1, 5, 5));
p3.add(t1);
...
p3.add(t4);
JPanel p4 = new JPanel();
p4.setLayout(new BorderLayout());
p4.add(msg, BorderLayout.NORTH);
p4.add(new JScrollPane(table), BorderLayout.CENTER);
add(p1, BorderLayout.NORTH);
add(p2, BorderLayout.WEST);
add(p3, BorderLayout.EAST);
add(p4, BorderLayout.SOUTH);
msg.setForeground(Color.red);
table.setModel(ap.getDatenmodell());
table.setPreferredScrollableViewportSize(new Dimension(500, 300));
table.getSelectionModel().addListSelectionListener(this);
header = table.getTableHeader();
header.addMouseListener(new MyMouseListener());
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("Anzeigen"))
doAnzeigen();
else if (cmd.equals("Einfügen"))
doEinfuegen();
else if (cmd.equals("Ändern"))
doAendern();
else if (cmd.equals("Löschen"))
doLoeschen();
else if (cmd.equals("Alle Personen"))
doListe(0);
else if (cmd.equals("Zurücksetzen"))
doZuruecksetzen();
}
public void valueChanged(ListSelectionEvent e) {
int row = table.getSelectedRow();
if (row < 0)
return;
t1.setText((String)table.getValueAt(row, 0));
t2.setText((String)table.getValueAt(row, 1));
t3.setText((String)table.getValueAt(row, 2));
t4.setText(String.valueOf(table.getValueAt(row, 3)));
}
public void doAnzeigen() {
t2.setText("");
t3.setText("");
msg.setText(" ");
try {
int nr = Integer.parseInt(t1.getText());
Person a = ap.getPerson(nr);
if (a == null)
msg.setText("Personal-Nr. " + nr + " nicht vorhanden");
else {
t2.setText(a.getVorname());
t3.setText(a.getNachname());
t4.setText(String.valueOf(a.getGehalt()));
}
}
catch (NumberFormatException e) {
msg.setText("Personalnummer muss eine ganze Zahl sein");
}
catch (SQLException e) {
System.err.println(e);
}
}
public void doEinfuegen() {
int nr;
String vorname;
String nachname;
double gehalt;
msg.setText(" ");
try {
nr = Integer.parseInt(t1.getText());
}
catch (NumberFormatException e) {
msg.setText("Personal-Nr. muss eine ganze Zahl sein");
return;
}
vorname = t2.getText();
if (vorname.length() == 0) {
msg.setText("Vorname fehlt");
return;
}
nachname = t3.getText();
if (nachname.length() == 1) {
msg.setText("Nachname fehlt");
return;
}
try {
gehalt = Double.parseDouble(t4.getText());
}
catch (NumberFormatException e) {
msg.setText("Gehalts-Kl. muss eine Zahl (z.B. 12.5) sein");
return;
}
Person a = new Person(nr, vorname, nachname, gehalt);
try {
if (ap.vorhanden(nr)) {
msg.setText("Personal-Nr. " + nr + " ist bereits vorhanden");
return;
}
ap.insertPerson(a);
msg.setText("Person wurde eingefügt");
}
catch (SQLException e) {
System.err.println(e);
}
}
public void doAendern() {
int nr;
String vorname;
String nachname;
double gehalt;
msg.setText(" ");
try {
nr = Integer.parseInt(t1.getText());
}
catch (NumberFormatException e) {
msg.setText("Personal-Nr. muss eine ganze Zahl sein");
return;
}
vorname = t2.getText();
if (vorname.length() == 0) {
msg.setText("Vorname fehlt");
return;
}
nachname = t3.getText();
if (nachname.length() == 1) {
msg.setText("Nachname fehlt");
return;
}
try {
gehalt = Double.parseDouble(t4.getText());
}
catch (NumberFormatException e) {
msg.setText("Fehlermeldung NACHNAME");
return;
}
Person a = new Person(nr, vorname, nachname, gehalt);
try {
if (!ap.vorhanden(nr)) {
msg.setText("Personal-Nr. " + nr + " nicht vorhanden");
return;
}
ap.updatePerson(a);
msg.setText("Person wurde geändert");
}
catch (SQLException e) {
System.err.println(e);
}
}
public void doLoeschen() {
msg.setText(" ");
try {
int nr = Integer.parseInt(t1.getText());
if (!ap.vorhanden(nr)) {
msg.setText("Personal-Nr. " + nr + " nicht vorhanden");
return;
}
ap.deletePerson(nr);
msg.setText("Person wurde gelöscht");
}
catch (NumberFormatException e) {
msg.setText("Personal-Nr. muss eine ganze Zahl sein");
}
catch (SQLException e) {
System.err.println(e);
}
}
public void doListe(int col) {
t1.setText("");
t2.setText("");
t3.setText("");
t4.setText("");
msg.setText(" ");
try {
ap.setTabelle(col);
}
catch (SQLException e) {
System.err.println(e);
}
}
public void doZuruecksetzen() {
t1.setText("");
t2.setText("");
t3.setText("");
t4.setText("");
msg.setText(" ");
}
class MyMouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
Point p = e.getPoint();
int col = header.columnAtPoint(p);
doListe(col);
}
}
}
Wie kann ich das machen und wo im Code sollte es hin?
Bin langsam verzweifelt...
FallenAngelNRW
Zuletzt bearbeitet: