Hallo zusammen,
ich habe folgende Aufgabe zu lösen:
ich soll einen Rammen um JButton machen. Der Rahmen soll eine grüne Linie sein, die sich 3 Pixel vom Buttom entfernt befindet.
Ich erstelle eine Klasse extends JButton und schreibe folgendes rein:
public class JMyButton extends JButton {
public JMyButton(Graphics g) {
super.paintComponent(g);
g.setColor(Color.GREEN);
g.drawRect(-3, -3, (this.getWidth() + 6), (this.getHeight() + 6));
}
}
und in der main-Class steht folgendes:
...
public Testframe() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(700, 350, 477, 374);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMyButton btnEnde = new JMyButton("Ende");
btnEnde.setBounds(314, 265, 98, 26);
contentPane.add(btnEnde);
Bei der Erstellung der Zeile : JMyButton btnEnde = new JMyButton("Ende"); wird mir ein Fehler angezeigt, dass dieser Konstruktor undefined ist. Ist auch klar, weils ein String ist. Wie kann ich dann den Button beschriften??? Irgendwie Blicke ich überhaupt nicht durch
Im Buch hat folgende Konstruktion (Diagonale ziehen durch ein JPanel) einwandfrei funktioniert:
public class JMyPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.red);
g.drawLine(0, 0, this.getWidth(), this.getHeight());
}
}
main-Class:
...
public Zeichnen1() {
setTitle("Zeichnen1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMyPanel panel = new JMyPanel();
panel.setBounds(102, 26, 187, 84);
contentPane.add(panel);
JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(165, 179, 89, 23);
contentPane.add(btnNewButton);
}
}
Wo ist der Fehler? Danke für eure Hilfe
MfG
ich habe folgende Aufgabe zu lösen:
ich soll einen Rammen um JButton machen. Der Rahmen soll eine grüne Linie sein, die sich 3 Pixel vom Buttom entfernt befindet.
Ich erstelle eine Klasse extends JButton und schreibe folgendes rein:
public class JMyButton extends JButton {
public JMyButton(Graphics g) {
super.paintComponent(g);
g.setColor(Color.GREEN);
g.drawRect(-3, -3, (this.getWidth() + 6), (this.getHeight() + 6));
}
}
und in der main-Class steht folgendes:
...
public Testframe() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(700, 350, 477, 374);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMyButton btnEnde = new JMyButton("Ende");
btnEnde.setBounds(314, 265, 98, 26);
contentPane.add(btnEnde);
Bei der Erstellung der Zeile : JMyButton btnEnde = new JMyButton("Ende"); wird mir ein Fehler angezeigt, dass dieser Konstruktor undefined ist. Ist auch klar, weils ein String ist. Wie kann ich dann den Button beschriften??? Irgendwie Blicke ich überhaupt nicht durch
Im Buch hat folgende Konstruktion (Diagonale ziehen durch ein JPanel) einwandfrei funktioniert:
public class JMyPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.red);
g.drawLine(0, 0, this.getWidth(), this.getHeight());
}
}
main-Class:
...
public Zeichnen1() {
setTitle("Zeichnen1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMyPanel panel = new JMyPanel();
panel.setBounds(102, 26, 187, 84);
contentPane.add(panel);
JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(165, 179, 89, 23);
contentPane.add(btnNewButton);
}
}
Wo ist der Fehler? Danke für eure Hilfe
MfG