Hallo. Ich möchte auf Knopfdruck einen String in ein JPanel zeichnen lassen und habe dazu folgendes Programm:
Eine Klasse um einen Rahmen zu erstellen:
...und ein JPanel
Das Programm soll also, wenn ich "m" drücke unter "Hier:" ein A zeichnen. Dies tut es aber nicht. Warum?
Eine Klasse um einen Rahmen zu erstellen:
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Test {
private JFrame frame;
public static void main(String[] args) {
Test test = new Test();
test.los();
}
public void los() {
frame = new JFrame();
frame.getContentPane().add(new TestA());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Test");
frame.setSize(400,400);
frame.setVisible(true);
frame.setResizable(false);
}
}
...und ein JPanel
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TestA extends JPanel implements KeyListener{
private boolean zeichne = false;
public TestA() {
setBackground(Color.BLACK);
addKeyListener(this);
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2D = (Graphics2D) g;
String s1 = "A";
Font font = new Font("Helvetice", Font.PLAIN, 14);
g2D.setColor(Color.WHITE);
g2D.setFont(font);
g2D.drawString("Hier:" , 170, 170);
if(zeichne) g2D.drawString(s1, 190, 190);
}
public void keyTyped(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key==KeyEvent.VK_M) {
zeichne = true;
repaint();
}
}
public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
Das Programm soll also, wenn ich "m" drücke unter "Hier:" ein A zeichnen. Dies tut es aber nicht. Warum?