2016-03-13 2 views
1

Я работаю над созданием Pong на Java, но я не могу точно установить размер JFrame. Вот мой основной класс:Получите максимальный размер экрана с помощью JFrame

import java.awt.Dimension; 
import java.awt.Toolkit; 
import javax.swing.JFrame; 

public class Pong extends JFrame { 

    private final Game panel; 
    private final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 

    public Pong() { 
     setTitle("Pong"); 
     setSize(screenSize); 
     setVisible(true); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     panel = new Game(this); 
     add(panel); 
    } 

    public static void main(String[] args) { 
     new Pong(); 
    } 

} 

Когда я запускаю свою программу, окно занимает весь экран, но когда я пытаюсь получить размеры экрана, они больше, чем у окна, в результате чего-нибудь установите в нижней части окна, чтобы обрезаться. Единственный способ найти истинные размеры - вызвать this.getHeight(), this.getWidth() или this.getSize() в классе панели. Как я могу получить истинные размеры сразу с места в карьер?

ответ

1

Вы можете использовать JFrame#setExtendedState(JFrame.MAXIMIZED_BOTH)

f.setExtendedState(JFrame.MAXIMIZED_BOTH); 

Он имеет тот же эффект, когда вы увеличиваете окно в вашей ОС

С помощью этого метода, теперь вы можете иметь «реальные» размеры, называя разные методы, упомянутые выше в вопросе.

1

Попробуйте называть метод setExtendedState.

public class Pong extends JFrame { 

    private final Game panel; 

    public Pong() { 
     setTitle("Pong"); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     panel = new Game(this); 
     add(panel); 
     setExtendedState(java.awt.Frame.MAXIMIZED_BOTH); 
     //setVisible(true); 
    } 

    public static void main(String[] args) { 
     Pong pong = new Pong(); 
     pong.setVisible(true); 
    } 

} 
+0

Используя этот метод, результат выглядит одинаково. Кажется, что он включает панель меню окна в высоту. –

+0

@CarterS. Вы хотите размер JFrame вместо рабочего стола? Я скучаю по тебе. – josivan

+0

В контексте Понга мой мяч уходит в нижней части экрана, прежде чем подпрыгивать, потому что я не могу получить точную высоту окна. 'game.getHeight()' составляет около 15 пикселей за краем окна. –

0
import java.awt.Dimension; 
import java.awt.Toolkit; 
import javax.swing.JFrame; 

public class Pong extends JFrame { 

    private final Game panel; 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
double width = screenSize.getWidth(); 
double height = screenSize.getHeight(); 

    public Pong() { 
     setTitle("Pong"); 
     setSize((int)width,(int)height); 
     setVisible(true); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     panel = new Game(this); 
     add(panel); 
    } 

    public static void main(String[] args) { 
     new Pong(); 
    } 

} 

проверить этот вопрос How can I get screen resolution in java?

0

Помещенный в коде:

this.setExtendedState(JFrame.MAXIMIZED_BOTH); 

Подробности вы можете найти в documentation.

Другие вопросы по этой теме: here.

 Смежные вопросы

  • Нет связанных вопросов^_^