P
payne
Gast
Hallo,
ich bin blutiger anfänger in der Java Programmierung, und versuche mich im Moment an JTables. Folgendes möchte ich programmieren.
Es erscheint zuerst ein Login Screen wo der benutzer einen Namen und eine UserID in jeweils ein TextField eingeben kann, und dann auf einen Login Button klicken kann/soll. Sobald auf denn Login Buton gedrückt wird soll ein neues Fenster aufgemacht werden das 900x900 gross sein soll.
In diesem neuem Fenster soll es nun eine JTable geben die aber nicht das ganze Fenster ausfüllen soll. Denn ich möchte noch ein parr Buttons , Labels etc auf das Fenster plazieren. Könnte mir einer von euch bitte ein kleines Beispiel zu meinem vorhaben schreiben?
hier zuerst einmal mein Ansatz bisher, wobei ich nichteinmal das JTable zum anzeigen bringe -.-
Hier die Klasse mit dem Login Fenster die zuerst gestartet wird.
Hier die Frame Klasse die geöffnet werden soll mit dem Inhalt der Table wobei der Inhalt im Moment noch keine Rolle spielt erstmal möchte ich das es mir überhaupt eine JTable anzeigt <_<
Diese Klasse soll mir die Tabelle erstellen und soll die Tabelle als Objekt zurückliefern.
Ich hoffe es kann mir jemand von euch helfen.
Gruss
ich bin blutiger anfänger in der Java Programmierung, und versuche mich im Moment an JTables. Folgendes möchte ich programmieren.
Es erscheint zuerst ein Login Screen wo der benutzer einen Namen und eine UserID in jeweils ein TextField eingeben kann, und dann auf einen Login Button klicken kann/soll. Sobald auf denn Login Buton gedrückt wird soll ein neues Fenster aufgemacht werden das 900x900 gross sein soll.
In diesem neuem Fenster soll es nun eine JTable geben die aber nicht das ganze Fenster ausfüllen soll. Denn ich möchte noch ein parr Buttons , Labels etc auf das Fenster plazieren. Könnte mir einer von euch bitte ein kleines Beispiel zu meinem vorhaben schreiben?
hier zuerst einmal mein Ansatz bisher, wobei ich nichteinmal das JTable zum anzeigen bringe -.-
Hier die Klasse mit dem Login Fenster die zuerst gestartet wird.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
/**
*
* Beschreibung
*
* @version 1.0 vom 29.08.2008
* @author
*/
public class Login extends JFrame {
// Anfang Attribute
private JButton jButton1 = new JButton();
private JTextField jTextField1 = new JTextField();
private JTextField jTextField2 = new JTextField();
// Ende Attribute
public Login(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
int frameWidth = 579;
int frameHeight = 528;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jButton1.setBounds(152, 232, 161, 65);
jButton1.setText("Login");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});
cp.add(jButton1);
jTextField1.setBounds(32, 128, 153, 40);
jTextField1.setText("jTextField1");
cp.add(jTextField1);
jTextField2.setBounds(264, 128, 137, 40);
jTextField2.setText("jTextField2");
cp.add(jTextField2);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Methoden
public void jButton1_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
Frame fr = new Frame("blubb");
Container content = fr.getContentPane();
JTableDemo jtable = new JTableDemo();
content.add(new JScrollPane(jtable.getTable()));
}
// Ende Methoden
public static void main(String[] args) {
new Login("Login");
}
}
Hier die Frame Klasse die geöffnet werden soll mit dem Inhalt der Table wobei der Inhalt im Moment noch keine Rolle spielt erstmal möchte ich das es mir überhaupt eine JTable anzeigt <_<
Code:
import java.awt.Container;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import com.sun.media.sound.Toolkit;
public class Frame extends JFrame {
/**
*
* Beschreibung
*
* @version 1.0 vom 29.08.2008
* @author
*/
public Frame(String title) {
super(title);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
int frameWidth = 965;
int frameHeight = 745;
setSize(frameWidth, frameHeight);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Methoden
// Ende Methoden
}
Diese Klasse soll mir die Tabelle erstellen und soll die Tabelle als Objekt zurückliefern.
Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class JTableDemo{
public JTable getTable() {
// Die Namen der Columns
String[] titles = new String[]{ "A", "B", "C", "D" };
// Das Model das wir verwenden werden. Hier setzten wir gleich die
// Titel, aber es ist später immer noch möglich weitere Columns oder
// Rows hinzuzufügen.
final DefaultTableModel model = new DefaultTableModel( titles, 0 );
// Das JTable initialisieren
JTable table = new JTable( model );
// Buttons, damit das alles schöner aussieht.
final JButton buttonAddRow = new JButton( "add row" );
final JButton buttonRemRow = new JButton( "remove row" );
final JButton buttonAddCol = new JButton( "add column" );
buttonRemRow.setEnabled( false );
// Den Buttons ein paar Reaktionen geben
buttonAddRow.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
// Die Anzahl Columns (Breite) der Tabelle
int size = model.getColumnCount();
// einen neuen Vector mit Daten herstellen
Vector newDatas = createDataVector( "row", size );
// eine neue Row hinzufügen
model.addRow( newDatas );
// das Entfernen erlauben
buttonRemRow.setEnabled( true );
}
});
buttonAddCol.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
int size = model.getRowCount();
Vector newDatas = createDataVector( "column", size );
String name = String.valueOf( model.getColumnCount() );
model.addColumn( name, newDatas );
}
});
buttonRemRow.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
int size = model.getRowCount();
int index = (int)(Math.random() * size);
model.removeRow( index );
buttonRemRow.setEnabled( size > 1 );
}
});
return table;
}
public static Vector createDataVector( String prefix, int size ){
Vector vector = new Vector( size );
for( int i = 0; i < size; i++ )
vector.add( prefix + " : " + size + " : " + i );
return vector;
}
}
Ich hoffe es kann mir jemand von euch helfen.
Gruss