Привет, я делаю игру на Java, и я получаю screenSize с помощью DefaultToolkit, но проблема заключается в том, что это определяет размер экрана, если он был FULLSCREEN. Как я могу получить размер экрана в области, которую занимает экран игры (который не является полноэкранным). Чтобы быть более точным, мой спрайт перемещается за край нижнего экрана из-за панели инструментов системы, которая добавляет к нему дополнительные «дополнения». Как я могу получить размер области, на которой играет игровой экран? Большое спасибоРазмер экрана в Java
0
A
ответ
1
Вы можете получить размер панели задач и другие вещи, используя вставки. Вот пример, чтобы получить размер экрана, который не включает панель задач/другие.
// Screen size
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
// Screen insets
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration());
// Get the real width/height
int width = screen.getWidth() - insets.left - insets.right;
int height = screen.getHeight() - insets.top - insets.bottom;
+0
Предполагая, что окно, используемое OP, не декорировано, в противном случае вам нужно просто использовать размер контейнера. Но это может быть использовано для установки размера окна в первую очередь +1 – MadProgrammer
3
Я думаю, что экран Bounds является то, что вы ищете:
import java.awt.*;
import javax.swing.*;
public class FrameInfo
{
public static void main(String[] args)
{
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
System.out.println("Screen Bounds: " + bounds);
GraphicsDevice screen = env.getDefaultScreenDevice();
GraphicsConfiguration config = screen.getDefaultConfiguration();
System.out.println("Screen Size : " + config.getBounds());
System.out.println(Toolkit.getDefaultToolkit().getScreenSize());
JFrame frame = new JFrame("Frame Info");
frame.setSize(200, 200);
frame.setVisible(true);
System.out.println("Frame Size : " + frame.getSize());
System.out.println("Frame Insets : " + frame.getInsets());
System.out.println("Content Size : " + frame.getContentPane().getSize());
}
}
Смежные вопросы
- 1. Разрешение экрана Java Размер
- 2. Получить размер экрана в Java
- 3. Размер экрана экрана Android
- 4. Размер экрана?
- 5. java-код, как поддерживать множественный размер экрана
- 6. Получить эффективный размер экрана с Java
- 7. Размер экрана в android
- 8. Размер экрана в пикселях
- 9. Размер экрана в cocos2d
- 10. Масштабирование холста на размер экрана Java
- 11. Размер экрана для экрана Android
- 12. Размер экрана маленького экрана Android
- 13. Размер экрана для экрана Android
- 14. Размер экрана до изображения
- 15. Изменить размер экрана на размер
- 16. jQuery размер экрана при загрузке и размер экрана
- 17. Размер экрана в формате .NET
- 18. Получить размер экрана в Android
- 19. Нормализованный размер экрана в Android
- 20. Определить размер экрана в Android
- 21. получить размер экрана в питона
- 22. Размер экрана в JSP/Servlet
- 23. Получить реальный размер экрана
- 24. Размер экрана android
- 25. UIWebview полный размер экрана
- 26. Размер сенсорного экрана
- 27. Размер экрана Javascript
- 28. Размер экрана дисплея
- 29. Размер экрана Android
- 30. Получить доступный размер экрана
Используйте [ 'Frame.setExtendedState (MAXIMIZED_BOTH)'] (http://docs.oracle.com/javase/7/ docs/api/java/awt/Frame.html # setExtendedState% 28int% 29), а затем 'gameScreen.getSize()' для размеров области рисования. –
@AndrewThompson Предполагая, что кадр не декорирован, в противном случае вы хотели бы использовать размер контейнера – MadProgrammer
@MadProgrammer Я предполагал, что 'gameScreen' был« областью рендеринга/рисования игры », расширенной от« JComponent' или «JPanel», чтобы добавить (или установить как) область содержимого кадра. Хотя, возможно, я должен был сделать это более ясным. ;) –