【问题标题】:What is it wanting me to create a method?它要我创建一个方法是什么?
【发布时间】:2013-12-27 06:10:33
【问题描述】:

我正在尝试为我正在开发的游戏创建菜单,但是当我尝试使用 GetBufferStrategy 时,Eclipse 会告诉我创建一个方法。我不想要一个方法。我希望它获得缓冲策略。我对java有点陌生,所以请解释为什么我的代码是错误的,所以我不再重复了。

package homeScreen;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.swing.JFrame;

public class homeScreen {

    static Toolkit tk = Toolkit.getDefaultToolkit();
    public static final int WIDTH = (int) tk.getScreenSize().getWidth();
    public static final int HEIGHT = (int) tk.getScreenSize().getHeight();

    BufferedImageLoader imageLoader = new BufferedImageLoader();

    private static homeScreen home = new homeScreen();

    private BufferedImage backgroundImage = null;
    private BufferedImage Buttons = null;

    public static void main(String args[]){
        JFrame frame = new JFrame("Game");
        frame.pack();
        frame.setSize(WIDTH, HEIGHT);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        home.loadImages();
    }

    private void loadImages() {
        try {
            backgroundImage = imageLoader.loadImage("/res/HomeScreen.png");
            Buttons = imageLoader.loadImage("/res/MainScreenButtons.png");
        } catch (IOException e) {
            e.printStackTrace();
        }
        home.display();
    }

    private void display(){
        BufferStrategy buffStrat = this.getBufferStrategy();
        Graphics g = buffStrat.getDrawGraphics();

        if(buffStrat == null){
            createBufferStrategy(3);
            return;
        }
        ////////////////////////////////////////////////

        ////////////////////////////////////////////////
        g.dispose();
        buffStrat.show();
    }
}

【问题讨论】:

    标签: java swing bufferstrategy


    【解决方案1】:

    您的类不从任何东西扩展,因此this.getBufferStrategy() 在您的类的上下文中不存在。

    尝试从java.awt.Canvas 扩展

    话虽如此,但要小心混合重型和轻型组件,它们往往不能很好地结合在一起。

    我也会避免使用Toolkit.getScreenSize(),因为它不考虑屏幕上可能出现的任何“附加”元素(如任务栏)。

    您“可以”改用frame.setExtendedState(MAXIMIZED_BOTH);...

    【讨论】:

      猜你喜欢
      • 2011-01-05
      • 2019-12-05
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      相关资源
      最近更新 更多