使用Java';s主类之外的2d图形
我有一个名为survival的类,它包含一个初始化程序的主方法。我怎样才能把它转移到一个与生存无关的新类中呢 下面是Survival.java:使用Java';s主类之外的2d图形,java,swing,graphics,2d,awt,Java,Swing,Graphics,2d,Awt,我有一个名为survival的类,它包含一个初始化程序的主方法。我怎样才能把它转移到一个与生存无关的新类中呢 下面是Survival.java: package survival; import javax.swing.*; public class Survival extends JFrame { private static int applicationWidth = 1024; private static int applicationHeight = 768;
package survival;
import javax.swing.*;
public class Survival extends JFrame {
private static int applicationWidth = 1024;
private static int applicationHeight = 768;
public Survival() {
setTitle("Survival");
setResizable(false);
setSize(applicationWidth, applicationHeight);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Survival();
}
}
下面是GraphicsDisplay.java:
package survival;
import java.awt.*;
import javax.swing.*;
public class GraphicsDisplay extends JPanel {
@Override public void paintComponent(Graphics g) {
g.fillOval(50, 50, 100, 100);
}
}
您必须扩展JPanel(JComponent)并重写
paintComponent(Graphics g)
方法
比如说,
public class MyPanel extends JPanel
{
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g); // suggestion of @kleopatra
}
}
您必须扩展JPanel(JComponent)并重写
paintComponent(Graphics g)
方法
比如说,
public class MyPanel extends JPanel
{
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g); // suggestion of @kleopatra
}
}
似乎您可以在
Survival
构造函数中添加GraphicsDisplay
的实例
...
setResizable(false);
add(new GraphicsDisplay());
setSize(applicationWidth, applicationHeight);
...
在本例中,GraphicsDisplay
充当隐式循环模型的视图。您可以看看这是如何在模式中分隔类的
因为<代码> GraphicsDisplay 是完全由您的程序呈现的自定义组件,请考虑重写<代码> GETApple Resisie()/Cuth>以定义面板的几何结构。然后,封闭框架可以只使用
pack()
,而不知道游戏中使用的其他显示面板。这是一个示例。似乎您可以在生存
构造函数中添加GraphicsDisplay
的实例
...
setResizable(false);
add(new GraphicsDisplay());
setSize(applicationWidth, applicationHeight);
...
在本例中,GraphicsDisplay
充当隐式循环模型的视图。您可以看看这是如何在模式中分隔类的
因为<代码> GraphicsDisplay 是完全由您的程序呈现的自定义组件,请考虑重写<代码> GETApple Resisie()/Cuth>以定义面板的几何结构。然后,封闭框架可以只使用
pack()
,而不知道游戏中使用的其他显示面板。这是一个示例。在构造函数中将组件(JPanel)添加到容器(JFrame)中:
在构造函数中,将组件(JPanel)添加到容器(JFrame):
您必须重新表述您的问题。注意:如果面板报告自身不透明(默认情况下),则paintComponent无效。您必须重新表述您的问题。注意:如果面板报告自身不透明(默认情况下),则paintComponent无效你能修改我添加的代码来描述你正在显示的内容吗?-1用于a)空paintComponent override b)getGraphics-这不是SwingHanks中自定义绘制的方式:-)以进一步澄清,您可以在方法中添加一条注释,提示进行自定义绘制,您可以修改我添加的代码来描述您正在显示的内容吗?-1对于a)空paintComponent override b)getGraphics-这不是Swingthanks中进行自定义绘制的方式:-)为了进一步澄清,您可以在方法中添加一条注释,提示在那里进行自定义绘制,“作为惯例,
add
及其变体,remove
和setLayout
已被覆盖,以便根据需要转发到contentPane
。”-“作为惯例,add
及其变体,remove
和setLayout
已被覆盖,以便根据需要转发到contentPane
。”-