Witam.
Zaczynam sie uczyc pisać aplikacje pełnoekranowe. Czy moze mi ktoś powiedzieć dlaczego nie "widzi" wciskania klawiszy?
import java.awt.EventQueue;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Frame();
}
});
}
}
import java.awt.DisplayMode;
import java.awt.Graphics2D;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Window;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
public class Screen {
private GraphicsDevice device;
public Screen()
{
GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = environment.getDefaultScreenDevice();
}
public void setFullSceen(DisplayMode displayMode, JFrame window)
{
window.setUndecorated(true);
window.setResizable(false);
device.setFullScreenWindow(window);
if(displayMode != null && device.isDisplayChangeSupported())
{
try
{
device.setDisplayMode(displayMode);
}
catch (IllegalArgumentException e) {
}
}
}
public void restoreScreen()
{
Window window = device.getFullScreenWindow();
if(window != null){
window.dispose();
}
device.setFullScreenWindow(null);
}
}
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Font;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Frame extends JFrame {
DisplayMode displayMode;
public Frame()
{
displayMode = new DisplayMode(1024, 768, 32, 100);
run(displayMode);
}
public void run(DisplayMode displayMode)
{
JPanel panel = new Panel();
add(panel);
Screen screen = new Screen();
try
{
screen.setFullSceen(displayMode, this);
}catch (Exception e) {
// TODO: handle exception
}
}
}
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Panel extends JPanel
{
private int x;
private int y;
private int key;
public Panel()
{
create();
}
private void create(){
MyKeyListener listener = new MyKeyListener(this);
addMouseListener(listener);
addMouseMotionListener(listener);
addKeyListener(listener);
repaint();
}
@Override
public void paintComponent(Graphics g){
g.setColor(Color.yellow);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.red);
g.setFont(new Font("Arial", Font.BOLD, 20));
g.drawString("X: "+x, 100, 100);
g.drawString("Y: "+y, 100, 130);
g.drawString("Key: "+key, 100, 160);
}
public void setPoz(int x,int y ){
this.x=x;
this.y=y;
repaint();
}
public void setKey(int k){
key=k;
repaint();
}
}
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
public class MyKeyListener implements MouseListener,MouseMotionListener,KeyListener{
Panel panel;
public MyKeyListener(Panel p){
panel=p;
}
@Override
public void mouseClicked(MouseEvent e) {
System.exit(0);
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
panel.setPoz(e.getX(),e.getY());
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("a"+e.getKeyChar());
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}