Hi leute,
seit einiger zeit versuche ich durch einen JButton aktion einen JLabel zu ändern.
Leider ist mein Programm etwas umfangreich geworden. Das problem ist das ich nicht wirklich auf die Methode zugreifen kann die die JLabels zeichnet um sie neu zu erstellen kann
Am ende will ich das durch den ActionListener die setJLabel Methode in der MyJPanelCenter classe
aufgerufen wird.
seit einiger zeit versuche ich durch einen JButton aktion einen JLabel zu ändern.
Leider ist mein Programm etwas umfangreich geworden. Das problem ist das ich nicht wirklich auf die Methode zugreifen kann die die JLabels zeichnet um sie neu zu erstellen kann
Java:
package Keys;
import glob.tools.Fehler;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class KeysOberflaeche extends JFrame {
public JLabel jlabSchluessel;
public JLabel jlabServer;
public JLabel jlabName;
public JLabel jlabAbkuerzung;
public JLabel jlabBenutzer;
public JLabel jlabKennwort;
public JLabel jlabAnwendung;
public JButton jbutVor;
public JButton jbutZurueck;
public JButton jbutErste;
public JButton jbutLetzte;
MyJPanelCenter a = new MyJPanelCenter();
private static int counter = 0;
public static void main(String[] args) throws Fehler {
new KeysOberflaeche();
}
public void control() throws Fehler {
if (counter == 0) {
jbutZurueck.setEnabled(false);
jbutErste.setEnabled(false);
jbutVor.setEnabled(true);
jbutLetzte.setEnabled(true);
} else if (counter > 0 && counter < KeysDaoFactory.create().search().size()) {
jbutZurueck.setEnabled(true);
jbutErste.setEnabled(true);
jbutVor.setEnabled(true);
jbutLetzte.setEnabled(true);
} else if (counter == KeysDaoFactory.create().search().size()) {
jbutZurueck.setEnabled(true);
jbutErste.setEnabled(true);
jbutVor.setEnabled(false);
jbutLetzte.setEnabled(false);
}
}
public void jbutActionListener() throws Fehler {
jbutVor.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if(counter < KeysDaoFactory.create().search().size()) {
counter++;
control();
}
} catch (Fehler e1) {
}
}
});
jbutZurueck.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(counter > 0) {
try {
counter--;
control();
} catch (Fehler e1) {
}
}
}
});
jbutErste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(counter > 0) {
try {
counter = 0;
control();
} catch (Fehler e1) {
}
}
}
});
jbutLetzte.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if(counter < KeysDaoFactory.create().search().size()) {
counter = KeysDaoFactory.create().search().size();
control();
}
} catch (Fehler e1) {
}
}
});
}
public KeysOberflaeche() throws Fehler {
fenster();
this.getContentPane().add(new MyJPanelWest(), BorderLayout.WEST);
this.getContentPane().add(new MyJPanelEast(), BorderLayout.EAST);
this.getContentPane().add(new MyJPanelNorth(), BorderLayout.NORTH);
this.getContentPane().add(new MyJPanelSouth(), BorderLayout.SOUTH);
this.getContentPane().add(new MyJPanelCenter(), BorderLayout.CENTER);
this.setVisible(true);
}
private void fenster() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800, 640);
}
class MyJPanelWest extends JPanel {
public MyJPanelWest() {
this.setBackground(Color.YELLOW);
}
}
class MyJPanelEast extends JPanel {
public MyJPanelEast() {
this.setBackground(Color.YELLOW);
}
}
class MyJPanelCenter extends JPanel {
public MyJPanelCenter() {
this.setBackground(Color.GRAY);
try {
setJLabel();
} catch (Fehler e) {
}
}
public void setJLabel() throws Fehler {
jlabSchluessel = OberfaecheFactory.labels(""
+ KeysDaoFactory.create().search().get(counter)
.getSchluessel());
jlabServer = OberfaecheFactory.labels(KeysDaoFactory.create()
.search().get(counter).getServer());
jlabName = OberfaecheFactory.labels(KeysDaoFactory.create()
.search().get(counter).getName());
jlabAnwendung = OberfaecheFactory.labels(KeysDaoFactory.create()
.search().get(counter).getAnwendung());
jlabBenutzer = OberfaecheFactory.labels(KeysDaoFactory.create()
.search().get(counter).getBenutzer());
jlabKennwort = OberfaecheFactory.labels(KeysDaoFactory.create()
.search().get(counter).getKennwort());
jlabAbkuerzung = OberfaecheFactory.labels(KeysDaoFactory.create()
.search().get(counter).getAbkuerzung());
this.add(jlabSchluessel);
this.add(jlabServer);
this.add(jlabName);
this.add(jlabAnwendung);
this.add(jlabBenutzer);
this.add(jlabKennwort);
this.add(jlabAbkuerzung);
}
}
class MyJPanelNorth extends JPanel {
public MyJPanelNorth() {
this.setBackground(Color.WHITE);
}
}
class MyJPanelSouth extends JPanel {
public MyJPanelSouth() {
this.setBackground(Color.GRAY);
this.setPreferredSize(new Dimension(100, 100));
try {
setBut();
} catch (Fehler e) {
}
}
public void setBut() throws Fehler {
jbutLetzte = OberfaecheFactory.button(">>");
jbutLetzte.setPreferredSize(new Dimension(80, 20));
jbutVor = OberfaecheFactory.button(">");
jbutVor.setPreferredSize(new Dimension(80, 20));
jbutZurueck = OberfaecheFactory.button("<");
jbutZurueck.setPreferredSize(new Dimension(80, 20));
jbutErste = OberfaecheFactory.button("<<");
jbutErste.setPreferredSize(new Dimension(80, 20));
jbutActionListener();
jbutVor.setEnabled(true);
jbutZurueck.setEnabled(false);
jbutErste.setEnabled(false);
jbutLetzte.setEnabled(true);
this.add(jbutErste);
this.add(jbutZurueck);
this.add(jbutVor);
this.add(jbutLetzte);
}
}
}
Am ende will ich das durch den ActionListener die setJLabel Methode in der MyJPanelCenter classe
aufgerufen wird.
Zuletzt bearbeitet: