Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do i use KeyListener in java?
    primarykey
    data
    text
    <p>How do I use KeyListener on this code to move up and down? Ii know how to use KeyListener but I don't know where it put it on this code. </p> <pre><code> import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class ControlPanel extends JPanel implements Runnable,ActionListener,KeyListener,MouseListener{ private MainPanel main; private final static int maxWidth = 800, maxHeight = 600; //width &amp; height of JPanel private boolean running; //keeps track of state of the program private Thread thread; private Graphics2D graphics; private Image image; //used for double buffering private BufferedImage bgImage; private String s = ""; Font f = new Font("Times New Roman",Font.PLAIN,50); Timer t = new Timer(2000,this); private int typed = 0; private int x = 50,y = 500; public ControlPanel(MainPanel main) { this.setDoubleBuffered(false); //we'll use our own double buffering method this.setBackground(Color.black); this.setPreferredSize(new Dimension(maxWidth, maxHeight)); this.setFocusable(true); this.requestFocus(); this.main = main; addKeyListener(this); addMouseListener(this); t.start(); } public static void main(String[] args) { new MainPanel(); } public void addNotify() { super.addNotify(); startGame(); } public void stopGame() { running = false; } //Creates a thread and starts it public void startGame() { if (thread == null || !running) { thread = new Thread(this); } thread.start(); //calls run() } public void run() { running = true; init(); while (running) { createImage(); //creates image for double buffering ///////////////USE THESE 2 METHODS//////////////////// update(); //use this to change coordinates, update values, etc draw(); //use this to draw to the screen ////////////////////////////////////////////////////// drawImage(); //draws on the JPanel } System.exit(0); } //Use this to create or initialize any variables or objects you have public void init() { } public void initGame(){ } //Use this to update anything you need to update public void update() { } //Use this to draw anything you need to draw public void draw() { graphics.setColor(Color.WHITE); graphics.fillRect(250, 450, 300,100); graphics.setColor(Color.WHITE); graphics.fillRect(250, 320, 300,100); graphics.setColor(Color.GREEN); graphics.setFont(f); graphics.drawString(s, x, y); typed = 0; graphics.setFont(f); graphics.setColor(Color.blue); graphics.drawString("HANGMAN", 270,75); graphics.setFont(f); graphics.setColor(Color.blue); graphics.drawString("PLAY", 330, 390); graphics.setFont(f); graphics.setColor(Color.blue); graphics.drawString("QUIT", 330, 520); graphics.setColor(Color.red); graphics.drawRect(248, 318, 304,104); } //creates an image for double buffering public void createImage() { if (image == null) { image = createImage(maxWidth, maxHeight); if (image == null) { System.out.println("Cannot create buffer"); return; } else graphics = (Graphics2D)image.getGraphics(); //get graphics object from Image } if (bgImage == null) { graphics.setColor(Color.black); graphics.fillRect(0, 0, maxWidth, maxHeight); //System.out.println("No background image"); } else { //draws a background image on the Image graphics.drawImage(bgImage, 0, 0, null); } } //outputs everything to the JPanel public void drawImage() { Graphics g; try { g = this.getGraphics(); //a new image is created for each frame, this gets the graphics for that image so we can draw on it if (g != null &amp;&amp; image != null) { g.drawImage(image, 0, 0, null); g.dispose(); //not associated with swing, so we have to free memory ourselves (not done by the JVM) } image = null; }catch(Exception e) {System.out.println("Graphics objects error");} } public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { typed = 1; s+=Character.toString(e.getKeyChar()); s+=" "; System.out.println(s); } @Override public void mouseClicked(MouseEvent e) { System.out.println(e.getPoint()); } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload