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