Mit setLocation bewegen der JFrame rund um Windows, Java
Ich versuche eine JFrame
um in Windows mit 5 Tasten (Nord, Ost, Süd, West und Zentrum) Im moment alle aktuellen code ist vorhanden und es funktioniert, wenn mit;
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==northButton)
{
setLocation(500,500);
}
} //works
public void actionPerformed(ActionEvent e)
{
if(e.getSource()== northButton)
{
setLocation(north);
}
} //doesn't work
Jedoch als Teil der Aufgabe muss ich die Java-Toolkit zu getScreenSize
Breite und Höhe und mit Berechnungen der arbeiten, die Grenzen des Bildschirms und senden 'Norden' zu setLocation()
(wie oben). Jedoch, mit dieser Methode wirft einen Fehler "No suitable method found"
ich bin mir nicht sicher, wie man dieses Problem beheben. Die Berechnung code ist unten nur für den Norden im moment.
int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
int width = this.getWidth();
int height = this.getHeight();
int north = ((screenWidth - width)/2);
Jede Hilfe wird sehr geschätzt.
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier übergeben Sie zwei Parameter, X und Y:
Hier übergeben Sie ein, aber welche ist es? X oder Y? Wenn X, wo ist Y?:
Der compiler sagt Ihnen, es muss nicht ein
setLocation()
Methode, die einen parameter. Es will einen Standort im 2D-Raum: das ist ein X und Y. Wahrscheinlich das, was Sie wollen, ist:Toolkit.getDefaultToolkit().getScreenSize()
gibt die volle Größe des Standard Bildschirm, es berücksichtigt auch nicht die Sachen wie task-bars oder andere Elemente, die möglicherweise besetzen Platz auf dem desktop, die Fenster sollten vermeiden wurde abgelegt unter/über.Eine bessere Lösung wäre die Verwendung
Toolkit.getDefaultToolkit().getScreenInsets(GraphicsConfiguration)
undGraphicsConfiguration#getBounds
Dem wichtigsten Problem, das Sie haben ist, dass es keine solche Methode, wie
setLocation(int)
...was wäre der Wertint
darstellen irgendeiner Weise? x-oder y-position?Du musst in der x-und y-position
setLocation
um für Sie zu arbeiten.Zum Beispiel...