如何使用MVC和paintComponent在视图类中为我的平台创建一个setBackground方法



这是我的视图类

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class View 
{
JFrame frame;
JPanel background;

public View() 
{
frame = new JFrame("Platformer");
background = new JPanel(new BorderLayout());
BuildMenu();
SetBackground();
BuildLowerPanel();
frame.getContentPane().add(background);
frame.setSize(800, 700);
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
private void BuildMenu() 
{           
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Menu");
menuBar.add(menu);
frame.setJMenuBar(menuBar);
JMenuItem i = new JMenuItem("Resume");
i.setActionCommand("RESUME");
JMenuItem j = new JMenuItem("Pause");
j.setActionCommand("PAUSE");
menu.add(i);
menu.add(j);
}
public void paintComponent(Graphics g)
{

}
private void BuildLowerPanel()
{
}
}

这是我的Model类,基本上只读取图像

package introGUI;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Model 
{
private BufferedImage img;
public void ReadImage()
{
try
{
img = ImageIO.read(new              File("C:\Users\p333kle\Pictures\lvl1.jpg"));
}
catch(IOException e)
{
System.err.println("Error: Couldn't load background image");
}
}

}

现在,我想向我的视图类添加一个setBackground方法,该方法将在初始化级别时由控制器调用,并接收模型读取的图像。然而,我很困惑我将如何做到这一点,因为我确信我必须使用paintComponent,然后绘制我阅读的图像。然而,我不确定如何继续编写setBackground方法。

如图所示,使用观察器模式让您的模型在模型中启动级别更改时通知视图。在平台游戏的特定情况下,模型可以管理级别,可能由enum值标识,而视图可以选择匹配的背景,可能从相关集合中选择。参见引用示例中的RCImage

最新更新