Logik bei JTabbedPane?!
Hallo,
ich habe folgendes Problem: ich verstehe nicht, wie man einzelne Fenster/Layouts/Label usw. den verschiedenen Tabs speziell zuordnen kann. Anders ausgedrückt: Wie muss das im Quellcode aussehen, wenn ich einem einzelnen Tab mit einem speziellen Index (z.B. 0, 1, 2, 3 usw.) einen Button hinzufügen will. Vllt könnt ihr schnell mal drüber schauen, was ich bisher geschrieben habe:
Wie ihr seht habe ich jetzt erstmal ein Fenster für den ersten Tab "Mannschaften" aber jetzt kommt mein Problem:
wie bzw. wo kann ich, wenn ich jetzt einen anderen Tab auswähle in diesem "tab-fenster" meine Button/labels usw. einfügen?
Wäre euch echt dankbar, wenn ihr mir helfen könnten! Wenn ihr fragen zum Quellcode habt (bezüglich der Funktionen der einzelnen Methoden) dann fragt einfach!
Thx,
Baenedikt
Hallo,
ich habe folgendes Problem: ich verstehe nicht, wie man einzelne Fenster/Layouts/Label usw. den verschiedenen Tabs speziell zuordnen kann. Anders ausgedrückt: Wie muss das im Quellcode aussehen, wenn ich einem einzelnen Tab mit einem speziellen Index (z.B. 0, 1, 2, 3 usw.) einen Button hinzufügen will. Vllt könnt ihr schnell mal drüber schauen, was ich bisher geschrieben habe:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 14.06.2011
* @author
*/
public class LIGAMANAGER extends JFrame {
// Anfang Attribute
private JTabbedPane jTPane = new JTabbedPane();
private Panel jTPaneTabPanel1 = new Panel();
private Panel jTPaneTabPanel2 = new Panel();
private Panel jTPaneTabPanel3 = new Panel();
private Panel jTPaneTabPanel4 = new Panel();
private JLabel jLabelMannschaften = new JLabel();
private JLabel jLabelMannschaft1 = new JLabel();
private JTextField Mannschaft1 = new JTextField();
private JLabel VS = new JLabel();
private JTextField Mannschaft2 = new JTextField();
private JButton Beenden = new JButton();
private JButton Weiter = new JButton();
// Ende Attribute
public LIGAMANAGER(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 635;
int frameHeight = 488;
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
jTPane.setBounds(0, 0, 615, 33);
jTPane.setTabPlacement(JTabbedPane.TOP);
jTPane.setSelectedIndex(0);
jTPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent evt) {
jTPane_StateChanged(evt);
}
});
cp.add(jTPane);
jTPane.addTab("Mannschaften", jTPaneTabPanel1);
jTPane.addTab("Austragungsort", jTPaneTabPanel2);
jTPane.addTab("Spielstand", jTPaneTabPanel3);
jTPane.addTab("Fertig", jTPaneTabPanel4);
jLabelMannschaften.setBounds(24, 56, 484, 24);
jLabelMannschaften.setText("Tragen sie die gewünschten Mannschaften ein!");
jLabelMannschaften.setFont(new Font("Arial", Font.BOLD, 19));
cp.add(jLabelMannschaften);
jLabelMannschaft1.setBounds(32, 120, 151, 16);
jLabelMannschaft1.setText("Mannschaften eingeben:");
jLabelMannschaft1.setFont(new Font("Arial", Font.PLAIN, 13));
cp.add(jLabelMannschaft1);
Mannschaft1.setBounds(40, 176, 241, 24);
Mannschaft1.setText("Hier Mannschaft 1 eintragen!");
Mannschaft1.setToolTipText("Tragen Sie hier Mannschaft 1 ein!");
Mannschaft1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
Mannschaft1_MouseClicked(evt);
}
});
cp.add(Mannschaft1);
VS.setBounds(296, 176, 37, 19);
VS.setText("VS.");
VS.setFont(new Font("Arial", Font.BOLD, 16));
cp.add(VS);
Mannschaft2.setBounds(344, 176, 241, 24);
Mannschaft2.setText("Hier Mannschaft 2 eintragen!");
Mannschaft2.setToolTipText("Tragen Sie hier Mannschaft 2 ein!");
Mannschaft2.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
Mannschaft2_MouseClicked(evt);
}
});
cp.add(Mannschaft2);
Beenden.setBounds(464, 400, 145, 41);
Beenden.setText("Beenden");
Beenden.setMargin(new Insets(2, 2, 2, 2));
Beenden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Beenden_ActionPerformed(evt);
}
});
Beenden.setToolTipText("Hier Klicken um zu beenden!");
cp.add(Beenden);
Weiter.setBounds(288, 400, 145, 41);
Weiter.setText("Weiter");
Weiter.setMargin(new Insets(2, 2, 2, 2));
Weiter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Weiter_ActionPerformed(evt);
}
});
cp.add(Weiter);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Methoden
//Wenn der Button "Beenden" geklickt wird, wird das Programm (unter der Bedingung 0) geschlossen.
public void Beenden_ActionPerformed(ActionEvent evt) {
System.out.println("Danke, dass Sie den Ligamanager verwendet haben!");
System.exit(0);
}
//Wenn auf den Button "Weiter" geklickt wird, wird sich der Index des aktuellen Tabs geholt. Sollte der Index gleich 3 sein (was ja der Tab "Fertig" und damit der letzte Tab ist), kann nicht weiter geklickt werden, sondern es wird alles Angegebene übertragen und dann das Programm beendet.
public void Weiter_ActionPerformed(ActionEvent evt) {
if(jTPane.getSelectedIndex()!= 3){
jTPane.getComponentAt(jTPane.getSelectedIndex()+1);
}
else{
Beenden_ActionPerformed(evt);
}
}
//Sorgt dafür, dass das Text-Feld "Mannschaft1" geleert wird, sobald man hineinklickt.
public void Mannschaft1_MouseClicked(MouseEvent evt) {
Mannschaft1.setText("");
}
//Sorgt dafür, dass das Text-Feld "Mannschaft2" geleert wird, sobald man hineinklickt.
public void Mannschaft2_MouseClicked(MouseEvent evt) {
Mannschaft2.setText("");
}
public void jTPane_StateChanged(ChangeEvent evt) {
if(jTPane.getSelectedIndex() != 3){
jTPane.getComponentAt(jTPane.getSelectedIndex()+1);
}
}
// Ende Methoden
//Main-Methode, die das Programm starten. Dies ist möglich, da diese static ist, d.h. sie kann ausgeführt werden ohne, dass es ein Objekt der Klasse gibt.
public static void main(String[] args) {
new LIGAMANAGER("LIGAMANAGER");
}
}
Wie ihr seht habe ich jetzt erstmal ein Fenster für den ersten Tab "Mannschaften" aber jetzt kommt mein Problem:
wie bzw. wo kann ich, wenn ich jetzt einen anderen Tab auswähle in diesem "tab-fenster" meine Button/labels usw. einfügen?
Wäre euch echt dankbar, wenn ihr mir helfen könnten! Wenn ihr fragen zum Quellcode habt (bezüglich der Funktionen der einzelnen Methoden) dann fragt einfach!
Thx,
Baenedikt