Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class MainFrame extends JFrame {
static MainFrame fl;
static MainFrame gl;
static MainFrame bl;
private static int zaehler = 0;
MainFrame(String titel){
super(titel);
setSize(400,300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[]args){
fl = new MainFrame("FlowLayout");
gl = new MainFrame("Gridlayout");
bl = new MainFrame("BorderLayout");
fl.setLayout(new FlowLayout());
gl.setLayout(new GridLayout(4,4));
bl.setLayout(new BorderLayout());
for(int i = 1;i<=4;i++){
fl.add(new JLabel("Jlabel"+i));
gl.add(new JLabel("Jlabel"+i));
bl.add(new JLabel("Jlabel"+i),BorderLayout.CENTER);
}
MainFrame button = new MainFrame("button");
button.setSize(320,160);
button.setVisible(true);
button.setLayout(new GridLayout(1,2));
JButton jb1 = new JButton("Previous");
JButton jb2 = new JButton("Next");
fl.setVisible(true);
button.add(jb1);
button.add(jb2);
jb1.addActionListener(new ButtonListener());
jb2.addActionListener(new ButtonListener());
}
private class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Previous"))zaehler--;
if(e.getActionCommand().equals("Next"))zaehler++;
if(zaehler%3 == 0){fl.setVisible(true);gl.setVisible(false);bl.setVisible(false);}
if(zaehler%3 == 1){fl.setVisible(false);gl.setVisible(false);bl.setVisible(true);}
if(zaehler%3 == 2){fl.setVisible(false);gl.setVisible(true);bl.setVisible(false);}
System.out.println(zaehler);
}
}
}
Mit einer anonymen inneren Klasse funktioniert alles aber wenn ich es mit einer privaten inneren Klasse mache kann es nicht realisiert werden.
Wo muss ich die private innere Klasse einfügen. In dem Mainblock sowie Klassenblock funktioniert es nicht.
Bitte um Hilfe!
Zuletzt bearbeitet: