Hallo,ich hab mal ne Frage. Ich hab folgende Situation: Ich möchte verschiedene Daten auslesen. Jeder Datensatz kriegt einen eigenen Button mit dem man ihn öffnen kann. Allerdings fällt mir einfach nicht ein wie ich das implementieren soll. Meine Idee war erst in der Schleife wo die Daten ausgeelsen werden und der Button gleich erzeugt wird den String mituzübergeben das die neue Funnktion weiss welchen Datensatz sie aufrufen soll. Geht aber nicht da der Action Listener eine anonyme Klasse ist und ich nur final Vraivblen ansprechen kann..
meine jetzt etwas verhuntzen Qulltext hab ich mal gepostet.. nochmal zum Verständniss die Sache soll so aussehen das die Namen:
Müller
Meier etc. als Button dort vorhanden sind. Und der Name der angeklickt wurde denn übergebe ich auch. Ich überlege echt hin und her aber ich komme da einfach auf keine Lösung..wenn mir da jemand helfen könnte das fänd ich ehct super...
L-ectron-X hat diesen Beitrag am 16.10.2007 um 00:05 editiert.
Code-Tags eingefügt.
Code:
import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
class DatenEditieren
{
static void addComponent( Container cont,
GridBagLayout gbl,
Component c,
int x, int y,
int width, int height,
double weightx, double weighty )
{
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = x; gbc.gridy = y;
gbc.gridwidth = width; gbc.gridheight = height;
gbc.weightx = weightx; gbc.weighty = weighty;
gbl.setConstraints( c, gbc );
cont.add( c );
}
public void init()
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Container con = frame.getContentPane();
GridBagLayout gbl = new GridBagLayout();
con.setLayout( gbl );
addComponent( con, gbl, new JLabel("Name "), 0, 0, 1, 1, 0 , 0 );
String s="";
Reader f = null;
int z=0;
int d=1;
try
{
f = new FileReader( "D:/Programme/eclipse/fileWriter.txt" );
for ( int c; ( c = f.read() ) != -1; )
{
if((char)c != ';')
{
if((char)c!=',')
{
s=s+(char)c;
}
else
{
int m=0;
ActionListener a = new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
new DatenEditieren2.init(s);
}
};
addComponent( con, gbl, (new JButton(s)).addActionListener(a), 0, d, 1, 1, 0 , 0);
z++;
d++;
}
}
else
{
s="";
}
}
}
catch ( IOException e ) {
System.out.println( "Error reading file!" );
}
finally {
try { f.close(); } catch ( Exception e ) { }
}
frame.setSize(400, 400);
frame.setVisible( true );
}
}
Müller
Meier etc. als Button dort vorhanden sind. Und der Name der angeklickt wurde denn übergebe ich auch. Ich überlege echt hin und her aber ich komme da einfach auf keine Lösung..wenn mir da jemand helfen könnte das fänd ich ehct super...
L-ectron-X hat diesen Beitrag am 16.10.2007 um 00:05 editiert.
Code-Tags eingefügt.