B
bsc
Gast
Hallo, weils so gut geklappt hat habe ich auch noch eine zweite Frage. Die GUI ist fuer einen Client gedacht der ueber einen Server auf eine Datenbank zugreift. Eine Bibliothekssoftware.
Bisher ist es so, dass wenn der Benutzer etwas eingibt sollen und per Enter oder Button bestaetigt werden die ganzen Sachen an eine weitere Klasse uebergeben, die sich um die Netzwerkkommunikation kuemmert. Im Quellcode lass ich mir die zu uebergebenen Sachen noch inner Console ausgeben nur zur Ueberpruefung.
Jetzt soll vom Server ein paar Sekunden spaeter die Antwort kommen und dann die Daten in einer JTable erstmal abgebildet werden.
Muss ich dazu die JTable ueber eine extra Methode erzeugen lassen und einfach nach erhalt der Informationen die JTable-Methode neu starten oder wie aktualisier ich die GUI mit den neuen Informationen?
Ausserdem soll nach dem Auswaehlen eines Elementes der Tabelle ein Haufen Labels aktualisiert werden. Falls es noch was einem Code zu bemaengeln gibt immer her damit. Freu mich ueber Kritik!
Vielen Dank!
Bjoern
Bisher ist es so, dass wenn der Benutzer etwas eingibt sollen und per Enter oder Button bestaetigt werden die ganzen Sachen an eine weitere Klasse uebergeben, die sich um die Netzwerkkommunikation kuemmert. Im Quellcode lass ich mir die zu uebergebenen Sachen noch inner Console ausgeben nur zur Ueberpruefung.
Jetzt soll vom Server ein paar Sekunden spaeter die Antwort kommen und dann die Daten in einer JTable erstmal abgebildet werden.
Muss ich dazu die JTable ueber eine extra Methode erzeugen lassen und einfach nach erhalt der Informationen die JTable-Methode neu starten oder wie aktualisier ich die GUI mit den neuen Informationen?
Ausserdem soll nach dem Auswaehlen eines Elementes der Tabelle ein Haufen Labels aktualisiert werden. Falls es noch was einem Code zu bemaengeln gibt immer her damit. Freu mich ueber Kritik!
Code:
package GUI;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.table.TableColumn;
class GUI
extends JFrame
{
private JTabbedPane tabbedPane;
private JPanel tabSearch;
private JPanel tabBooks;
private JPanel tabUsers;
private JPanel tabPrefs;
private JTextField searchFor;
private JComboBox boxArt;
private JComboBox boxUnd;
private JComboBox boxType;
public GUI(Object[][] dataResults)
{
setTitle( "Bibliotheks-Software" );
setSize( 800, 600 );
JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );
createPage1(dataResults);
createPage2();
createPage3();
createPage4();
tabbedPane = new JTabbedPane();
tabbedPane.addTab( "Suche", tabSearch );
tabbedPane.addTab( "Titelverwaltung", tabBooks );
tabbedPane.addTab( "Benutzerverwaltung", tabUsers );
tabbedPane.addTab( "Einstellungen", tabPrefs );
topPanel.add( tabbedPane, BorderLayout.CENTER );
}
public void createPage1(Object[][] dataResults)
{
tabSearch = new JPanel();
tabSearch.setLayout( null );
JButton buttonSearch = new JButton("Suchen");
buttonSearch.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(searchFor.getText());
System.out.println(boxArt.getSelectedItem());
System.out.println(boxUnd.getSelectedItem());
System.out.println(boxType.getSelectedItem());
}
});
buttonSearch.setBounds(335,30,100,28);
tabSearch.add(buttonSearch);
this.searchFor = new JTextField();
searchFor.setBounds(25, 30, 300, 28);
tabSearch.add(searchFor);
searchFor.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(searchFor.getText());
System.out.println(boxArt.getSelectedItem());
System.out.println(boxUnd.getSelectedItem());
System.out.println(boxType.getSelectedItem());
}
});
this.boxArt = new JComboBox();
boxArt.addItem("Alle Wörter");
boxArt.addItem("Person, Autor");
boxArt.addItem("ISBN");
boxArt.addItem("Schlagwörter");
boxArt.addItem("Jahr");
boxArt.setBounds(175, 65, 150, 28);
tabSearch.add(boxArt);
this.boxUnd = new JComboBox();
boxUnd.addItem("suchen [und]");
boxUnd.addItem("suchen [oder]");
boxUnd.setBounds(25, 65, 140, 28);
tabSearch.add(boxUnd);
this.boxType = new JComboBox();
boxType.addItem("Alle Typen");
boxType.addItem("Buch");
boxType.addItem("Zeitschrift");
boxType.addItem("Dissertation");
boxType.addItem("Sonstige");
boxType.setBounds(335, 65, 140, 28);
tabSearch.add(boxType);
String[] columnNames = {
"Titel", "Autor", "Jahr"
};
JTable searchResult = new JTable(dataResults, columnNames);
TableColumn Titel = searchResult.getColumnModel().getColumn(0);
TableColumn Autor = searchResult.getColumnModel().getColumn(1);
TableColumn Jahr = searchResult.getColumnModel().getColumn(2);
Titel.setPreferredWidth(250);
Autor.setPreferredWidth(150);
Jahr.setPreferredWidth(50);
JScrollPane scrollPane = new JScrollPane(searchResult);
scrollPane.setBounds(25, 120, 450, 400);
tabSearch.add(scrollPane);
JLabel bookTitel = new JLabel("Der Baum der einmal umfiel und dann a");
JLabel bookAuthor = new JLabel("Verfasser:");
JLabel bookVersion = new JLabel("Ausgabe:");
JLabel bookRelease = new JLabel("Erschienen:");
JLabel bookSize = new JLabel("Umfang:");
JLabel bookLine = new JLabel("Reihe:");
JLabel bookMore = new JLabel("Anmerkung:");
JLabel bookISBN = new JLabel("ISBN:");
JLabel bookCode = new JLabel("Signatur:");
JLabel bookStatus = new JLabel("Ausleihbestand");
bookTitel.setBounds(520, 30, 260, 50);
bookAuthor.setBounds(520, 90, 80,25);
bookVersion.setBounds(520, 150, 80,25);
bookRelease.setBounds(520, 210, 80,25);
bookSize.setBounds(520, 270, 80,25);
bookLine.setBounds(520, 330, 80,25);
bookMore.setBounds(520, 390, 80,25);
bookISBN.setBounds(520, 450, 80,25);
bookCode.setBounds(520, 510, 80,25);
bookStatus.setBounds(520, 570, 80,25);
tabSearch.add(bookTitel);
tabSearch.add(bookAuthor);
tabSearch.add(bookVersion);
tabSearch.add(bookRelease);
tabSearch.add(bookSize);
tabSearch.add(bookLine);
tabSearch.add(bookMore);
tabSearch.add(bookISBN);
tabSearch.add(bookCode);
tabSearch.add(bookStatus);
}
public void createPage2()
{
tabBooks = new JPanel();
}
public void createPage3()
{
tabUsers = new JPanel();
}
public void createPage4()
{
tabPrefs = new JPanel();
}
public static void main( String args[] )
{
Object[][] dataResults = {
{"Das Buch der Buecher - Ein ganz tolles Teil", "eBaum", new Integer(2008)},
{"Das leere Buch", "Kimbo", new Integer(2007)}
};
GUI mainFrame = new GUI(dataResults);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setVisible( true );
}
Vielen Dank!
Bjoern