G
gast
Gast
Hallo,
ich habe die Suchfunktion benutzt finde aber nicht die Lösung meines Problems.
Mein Problem:
Ich habe eine JTabbedPane mit 2 Tabs.
In dem ersten Tab sollen "laufende" Partien eingetragen werden.
Im zweiten Tab sollen alle Partien stehen.
Nun soll im Tab laufende Partien ein Ergebnis eingetragen werden und die entsprechende Partie im zweiten Tab (alle Partien) aktualisiert werden (oder eben das ganze JPanel). Zum Schluß soll dies auch in die andere Richtung funktionieren.
hier nun der Code:
ich habe die Suchfunktion benutzt finde aber nicht die Lösung meines Problems.
Mein Problem:
Ich habe eine JTabbedPane mit 2 Tabs.
In dem ersten Tab sollen "laufende" Partien eingetragen werden.
Im zweiten Tab sollen alle Partien stehen.
Nun soll im Tab laufende Partien ein Ergebnis eingetragen werden und die entsprechende Partie im zweiten Tab (alle Partien) aktualisiert werden (oder eben das ganze JPanel). Zum Schluß soll dies auch in die andere Richtung funktionieren.
hier nun der Code:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TabbedPaneDemo
extends JFrame
//implements FocusListener, ActionListener
implements FocusListener
{
JTabbedPane tp;
String [][] Spiel = new String[257][5];
String Bindestrich = "-";
String Doppelpunkt = ":";
boolean havefocus = false;
JPanel partien = new JPanel();
JPanel partien2 = new JPanel();
public TabbedPaneDemo()
{
super("JTabbedPane Titel");
addWindowListener(new WindowClosingAdapter(true));
// Testwerte
Spiel[0][0] = "Spieler1";
Spiel[0][1] = "Spieler2";
Spiel[0][2] = "";
Spiel[0][3] = "";
Spiel[0][4] = "HR";
Spiel[1][0] = "Spieler3";
Spiel[1][1] = "Spieler4";
Spiel[1][2] = "";
Spiel[1][3] = "";
Spiel[1][4] = "HR";
tp = new JTabbedPane();
partien.setLayout(new GridLayout(8,1));
for (int i = 0; i <= 7; ++i) {
JPanel partie1 = new JPanel();
JTextField tf;
partie1.add(new JLabel(Spiel[i][4]));
partie1.add(new JLabel(Spiel[i][0]));
partie1.add(new JLabel(Bindestrich));
partie1.add(new JLabel(Spiel[i][1]));
tf = new JTextField(Spiel[i][2], 1);
tf.setName("A" + String.valueOf(i));
tf.addFocusListener(this);
partie1.add(tf);
partie1.add(new JLabel(Doppelpunkt));
tf = new JTextField(Spiel[i][3], 1);
tf.setName("B" + String.valueOf(i));
tf.addFocusListener(this);
partie1.add(tf);
partien.add(partie1);
}
tp.addTab("Laufende Partien", new JScrollPane(partien));
partien2.setLayout(new GridLayout(30,1));
for (int i = 0; i <= 29; ++i) {
JPanel partie1 = new JPanel();
JTextField tf;
partie1.add(new JLabel(Spiel[i][4]));
partie1.add(new JLabel(Spiel[i][0]));
partie1.add(new JLabel(Bindestrich));
partie1.add(new JLabel(Spiel[i][1]));
tf = new JTextField(Spiel[i][2], 1);
tf.setName("A" + String.valueOf(i));
tf.addFocusListener(this);
partie1.add(tf);
partie1.add(new JLabel(Doppelpunkt));
tf = new JTextField(Spiel[i][3], 1);
tf.setName("B" + String.valueOf(i));
tf.addFocusListener(this);
partie1.add(tf);
partien2.add(partie1);
}
tp.addTab("Alle Partien", new JScrollPane(partien2));
setContentPane(tp);
// System.out.println("CP:" + getContentPane());
// getContentPane().add(tp, BorderLayout.CENTER);
}
public void focusGained(FocusEvent event)
{
havefocus = true;
JTextField tf = (JTextField)event.getSource();
// System.out.println("fgained:" + tf.getText());
}
public void focusLost(FocusEvent event)
{
havefocus = false;
JTextField tf = (JTextField)event.getSource();
// System.out.println("subtf:" + tf.getName().substring(0,1) + ":");
if (tf.getName().substring(0,1).equals("A")) {
Spiel[Integer.valueOf(tf.getName().substring(1))][2] = tf.getText();
// System.out.println("gSI:" + tp.getSelectedIndex());
tp.revalidate();
// System.out.println("Sp:" + Spiel[Integer.valueOf(tf.getName().substring(1))][2]);
}
else if (tf.getName().substring(0,1).equals("B")) {
Spiel[Integer.valueOf(tf.getName().substring(1))][3] = tf.getText();
// System.out.println("gSIB:" + tp.getSelectedIndex());
tp.revalidate();
// System.out.println("Sp2:" + Spiel[Integer.valueOf(tf.getName().substring(1))][3]);
}
}
public static void main(String[] args)
{
TabbedPaneDemo frame = new TabbedPaneDemo();
frame.setLocation(100, 100);
frame.setSize(300, 200);
frame.setVisible(true);
}
}