Pasif oluşturma modunda, kullanıcıdan gelen olayları işlemek için KeyListener
ve ActionListener
arabirimlerini kullanabilirsiniz.Java'da tam ekran özel modunda klavyeden ve fareden gelen olayları nasıl ele alırsınız?
Tam ekran modunda olay işlemenin doğru yolu nedir?
import java.applet.Applet;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.Timer;
public class applet extends Applet
{
Timer timer;
JFrame frame;
DisplayMode[] displayModes = new DisplayMode[] {
new DisplayMode(1280, 800, 32, 60)
};
BufferStrategy bufferStrategy;
Rectangle bounds;
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
*/
public void init()
{
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); //displays, fonts, color shemes...
GraphicsDevice device = env.getDefaultScreenDevice(); //for one-display systems
setIgnoreRepaint(true);
GraphicsConfiguration gc = device.getDefaultConfiguration();
frame = new JFrame(gc);
device.setFullScreenWindow(frame);
if (device.isDisplayChangeSupported())
device.setDisplayMode(displayModes[0]);
frame.createBufferStrategy(2);
bufferStrategy = frame.getBufferStrategy();
timer = new Timer(1000/50, new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
Graphics2D g = null;
try {
g = (Graphics2D) bufferStrategy.getDrawGraphics();
render(g);
} finally {
g.dispose();
}
bufferStrategy.show();
}
});
}
private void render(Graphics2D g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, bounds.width, bounds.height);
}
public void start()
{
timer.start();
}
public void stop()
{
timer.stop();
}
}
Cevabınız için teşekkür ederiz! Aynı örneği de verebilir misiniz, ama java uygulaması olarak? Ben bir java uygulaması olmak için örnek istedim, ama ilk yazıya dahil etmeyi unutmuşum gibi görünüyor ... Sağladığınız gerçek kodda sadece küçük eklemeler/değişiklikler yapmanız gerektiğini düşünüyorum, eğer bunu yaparsanız çok teşekkür ederim çünkü örneğiniz çalışmak için çok iyi! – Vadim
JApplet'i öneririm, ancak güvenlik için muhtemelen [imzalanmış] (http://download.oracle.com/javase/tutorial/deployment/applet/security.html) olmalıdır. [Burada] gösterilen bir hibrid yaklaşımı kullanarak deneyebilirsiniz (https://sites.google.com/site/drjohnbmatthews/subway); [tag: java-web-start] daha iyi bir dağıtım stratejisi olurdu. – trashgod
Teşekkür ederim, kontrol ediyor olacak! – Vadim