Michael Weiss

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
<code id="4d5fc8de8c1c0" hidden>
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.font.*;

public class Tastatur 
{
  JFrame hatJFrame;
  ZeichenJPanel hatZeichenJPanel;
  String zKeyText = " ";
  MyKeyListener hatMyKeyListener;

  public Tastatur()
  {
    hatJFrame = new JFrame("Tastaturcode");
    hatJFrame.setBounds(100,100,400,200);
    hatZeichenJPanel = new ZeichenJPanel();
    hatJFrame.add(hatZeichenJPanel);
    hatMyKeyListener = new MyKeyListener();
    hatJFrame.addKeyListener(hatMyKeyListener);
    hatJFrame.setResizable(false);
    hatJFrame.setVisible(true);
  }

/*
  private class MyKeyListener implements KeyListener {
    public void keyPressed(KeyEvent evt) {
      zKeyText = evt.getKeyText(evt.getKeyCode());
      hatZeichenJPanel.repaint();
    }
    public void keyReleased(KeyEvent evt) {}
    public void keyTyped(KeyEvent evt) {} 
  }
*/

</code>
<code id="4d5fc8de8c223">
  private class MyKeyListener extends KeyAdapter {
    public void keyPressed(KeyEvent evt) {
      zKeyText = evt.getKeyText(evt.getKeyCode());
      hatZeichenJPanel.repaint();
    }
  } 
</code>
<code id="4d5fc8de8c27d" hidden>
  private class ZeichenJPanel extends JPanel {
    Rectangle2D.Float r;
    Font f = new Font("Arial", Font.PLAIN, 30);
    
    public void paintComponent(Graphics g) {
      super.paintComponent(g);
      g.setColor(Color.black);
      g.setFont(f);
      r = (Rectangle2D.Float)((new TextLayout(zKeyText,f,((Graphics2D)g).getFontRenderContext())).getBounds());
      g.drawString(zKeyText,(int)((this.getWidth()-r.getWidth())/2),(int)((this.getHeight()+r.getHeight())/2));
    }
  }
  
  static public void main(String[] args)
  {
    new Tastatur();
  }
}

</code>