Что хочет, чтобы я создал метод?

Я пытаюсь создать меню для игры, над которой я работаю, но когда я пытаюсь использовать 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();
    }
}

1 ответ

Ваш класс не расширяется ни от чего, поэтому this.getBufferStrategy() не существует в контексте вашего класса.

Попробуйте расширить от java.awt.Canvas вместо

Тем не менее, будьте осторожны, смешивая тяжелые и легкие компоненты, они, как правило, не очень хорошо играют вместе.

Я бы также избежал Toolkit.getScreenSize() поскольку он не учитывает какие-либо "дополнительные" элементы (например, панель задач), которые могут присутствовать на экране.

Вы могли бы использовать frame.setExtendedState(MAXIMIZED_BOTH); вместо...

Другие вопросы по тегам