如何在awt中填充整个窗口

正x平方

我正在使用java awt渲染一个简单的矩形。我也有一个矩形用作窗口的背景。事实是,即使将背景矩形设置为窗口的宽度和高度,也仍然无法容纳整个窗口。我曾尝试使用Google进行搜索,但发现结果与我的需求无关。是什么原因造成的?

import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.image.BufferStrategy;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class Game implements Runnable{

   final int WIDTH = 640;
   final int HEIGHT = 480;

   JFrame frame;
   Canvas canvas;
   BufferStrategy bufferStrategy;

   boolean running = false;

   public Game(){
      frame = new JFrame("Prototyping");

      JPanel panel = (JPanel) frame.getContentPane();
      panel.setPreferredSize(new Dimension(WIDTH, HEIGHT));
      panel.setLayout(null);


      canvas = new Canvas();
      canvas.setBounds(0, 0, WIDTH, HEIGHT);
      canvas.setIgnoreRepaint(true);

      panel.add(canvas);

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.pack();
      frame.setResizable(false);
      frame.setVisible(true);

      canvas.createBufferStrategy(2); 
      bufferStrategy = canvas.getBufferStrategy();

      canvas.requestFocus();
   }



   public void run(){

      running = true;
      while(running)         
         render();
   }

   private void render() {
      Graphics2D g = (Graphics2D) bufferStrategy.getDrawGraphics();
      g.clearRect(0, 0, WIDTH, HEIGHT);
      render(g);
      g.dispose();
      bufferStrategy.show();
   }

   protected void update(){

   }

   protected void render(Graphics2D g){
      g.setColor(Color.GRAY);
      g.fillRect(0, 0, WIDTH, HEIGHT);

      g.setColor(Color.BLUE);
      g.fillRect(100, 0, 200, 200);
   }

   public static void main(String [] args){
      Game game = new Game();
      new Thread(game).start();
   }

}
安德鲁·汤普森

这在这里完美无缺。由于我忘记了更改,因此请仔细检查以查找差异。

import java.awt.*;
import java.awt.image.BufferStrategy;
import javax.swing.*;

public class Game implements Runnable{

   final int WIDTH = 640;
   final int HEIGHT = 480;

   JFrame frame;
   Canvas canvas;
   BufferStrategy bufferStrategy;

   boolean running = false;

   public Game(){
      frame = new JFrame("Prototyping");

      JPanel panel = (JPanel) frame.getContentPane();
      panel.setPreferredSize(new Dimension(WIDTH, HEIGHT));
      panel.setLayout(new GridLayout());


      canvas = new Canvas();
      //canvas.setBounds(0, 0, WIDTH, HEIGHT);
      canvas.setIgnoreRepaint(true);

      panel.add(canvas);

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.pack();
      frame.setResizable(false);
      frame.setVisible(true);

      canvas.createBufferStrategy(2); 
      bufferStrategy = canvas.getBufferStrategy();

      canvas.requestFocus();
   }

   public void run(){
      running = true;
      while(running)         
         render();
   }

   private void render() {
      Graphics2D g = (Graphics2D) bufferStrategy.getDrawGraphics();
      g.clearRect(0, 0, WIDTH, HEIGHT);
      render(g);
      g.dispose();
      bufferStrategy.show();
   }

   protected void render(Graphics2D g){
      g.setColor(Color.GRAY);
      g.fillRect(0, 0, WIDTH, HEIGHT);

      g.setColor(Color.BLUE);
      g.fillRect(100, 0, 200, 200);
   }

   public static void main(String [] args){
      Game game = new Game();
      new Thread(game).start();
   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在RGL中绘制整个窗口?

来自分类Dev

如何在NCurses中添加窗口填充?

来自分类Dev

如何在opencv python中捕获整个窗口的鼠标移动?

来自分类Dev

如何在Tkinter中使分隔符填充整个窗口高度?

来自分类Dev

如何在Bootstrap 3中创建一个无需填充即可填充整个屏幕的容器?

来自分类Dev

调整大小时如何防止图像填充整个Tkinter窗口?

来自分类Dev

如何在UpdatePanel中单击按钮后如何在UpdatePanel内部的弹出窗口中填充GridView

来自分类Dev

如何在Mobile View中获得一个按钮来填充页脚的整个宽度?

来自分类Dev

如何在 VB.NET 中停止填充整个数组的循环?

来自分类Dev

如何在PyQt4中禁用按钮(或整个主窗口),直到函数返回0

来自分类Dev

如何在Ionic的导航栏下方使容器填充整个屏幕?

来自分类Dev

如何在Java Swing中用背景颜色填充整个面板?

来自分类Dev

在Swift中,为什么.zero在此示例中填充整个窗口?

来自分类Dev

在Swift中,为什么.zero在此示例中填充整个窗口?

来自分类Dev

如何在Firestore中“填充”?

来自分类Dev

R Shiny-如何使用iframe填充浏览器窗口的整个空间

来自分类Dev

Bootstrap:如何在更改窗口大小的同时稳定容器填充?

来自分类Dev

在Firefox附加组件中,如何在将事件侦听器添加到整个浏览器窗口时解决错误“未定义窗口”?

来自分类Dev

如何在Javascript中克隆整个表?

来自分类Dev

如何在div中包装整个GWT?

来自分类Dev

如何在postgres中哈希整个表?

来自分类Dev

如何在sftp中获得整个目录?

来自分类Dev

如何在Python中解析整个脚本?

来自分类Dev

如何在整个会话中存储变量?

来自分类Dev

如何在MySQL中打印整个表格

来自分类Dev

如何在Firefox中打印整个页面?

来自分类Dev

如何在A帧中缩放整个场景?

来自分类Dev

如何在python中反转整个屏幕

来自分类Dev

如何在横跨父窗口整个宽度的tmux窗口中添加水平拆分?

Related 相关文章

  1. 1

    如何在RGL中绘制整个窗口?

  2. 2

    如何在NCurses中添加窗口填充?

  3. 3

    如何在opencv python中捕获整个窗口的鼠标移动?

  4. 4

    如何在Tkinter中使分隔符填充整个窗口高度?

  5. 5

    如何在Bootstrap 3中创建一个无需填充即可填充整个屏幕的容器?

  6. 6

    调整大小时如何防止图像填充整个Tkinter窗口?

  7. 7

    如何在UpdatePanel中单击按钮后如何在UpdatePanel内部的弹出窗口中填充GridView

  8. 8

    如何在Mobile View中获得一个按钮来填充页脚的整个宽度?

  9. 9

    如何在 VB.NET 中停止填充整个数组的循环?

  10. 10

    如何在PyQt4中禁用按钮(或整个主窗口),直到函数返回0

  11. 11

    如何在Ionic的导航栏下方使容器填充整个屏幕?

  12. 12

    如何在Java Swing中用背景颜色填充整个面板?

  13. 13

    在Swift中,为什么.zero在此示例中填充整个窗口?

  14. 14

    在Swift中,为什么.zero在此示例中填充整个窗口?

  15. 15

    如何在Firestore中“填充”?

  16. 16

    R Shiny-如何使用iframe填充浏览器窗口的整个空间

  17. 17

    Bootstrap:如何在更改窗口大小的同时稳定容器填充?

  18. 18

    在Firefox附加组件中,如何在将事件侦听器添加到整个浏览器窗口时解决错误“未定义窗口”?

  19. 19

    如何在Javascript中克隆整个表?

  20. 20

    如何在div中包装整个GWT?

  21. 21

    如何在postgres中哈希整个表?

  22. 22

    如何在sftp中获得整个目录?

  23. 23

    如何在Python中解析整个脚本?

  24. 24

    如何在整个会话中存储变量?

  25. 25

    如何在MySQL中打印整个表格

  26. 26

    如何在Firefox中打印整个页面?

  27. 27

    如何在A帧中缩放整个场景?

  28. 28

    如何在python中反转整个屏幕

  29. 29

    如何在横跨父窗口整个宽度的tmux窗口中添加水平拆分?

热门标签

归档