JFrame和Graphic';s深度(Java)
他是我的问题: 我正在尝试使用java图形在JFrame中绘制网格。但是当我这样做时,网格覆盖了JFrame的组件(JTextFields、button等),我尝试在paint方法的末尾写“super.paint(g)”,但是当我这样做时,网格没有出现 他是代码:JFrame和Graphic';s深度(Java),java,swing,graphics,jframe,paint,Java,Swing,Graphics,Jframe,Paint,他是我的问题: 我正在尝试使用java图形在JFrame中绘制网格。但是当我这样做时,网格覆盖了JFrame的组件(JTextFields、button等),我尝试在paint方法的末尾写“super.paint(g)”,但是当我这样做时,网格没有出现 他是代码: public void paint(Graphics g){ super.paint(g); g.setColor(Color.P
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.PINK);
g.drawLine(0, 240, 640, 240);
g.drawLine(320,0,320,480);
g.setColor(Color.GRAY);
for (int i=1; i<24; i++){
g.drawLine(0, i*20, 640, i*20);
}
}
public void绘制(图形g){
超级油漆(g);
g、 setColor(颜色为粉红色);
g、 抽绳(0、240、640、240);
g、 抽绳(320,0320480);
g、 setColor(颜色为灰色);
对于(int i=1;i
自己创建一个自定义组件(从类似JPanel
的东西扩展而来)。覆盖它的paintComponent
方法,并在那里绘制网格(不要忘记调用super.paintComponent
)
创建JFrame
时,将面板设置为该框架的内容窗格-即frame.setContentPane(new GridPane())
继续按正常方式向框架添加构件
不建议覆盖顶级容器(如JFrame
)的paint
方法。它们包含许多子组件,可能会干扰您的绘制,并且很容易将绘制过程搞糟
自己创建一个自定义组件(从类似JPanel
的东西扩展而来)。覆盖它的paintComponent
方法,并在那里绘制网格(不要忘记调用super.paintComponent
)
创建JFrame
时,将面板设置为该框架的内容窗格-即frame.setContentPane(new GridPane())
继续按正常方式向框架添加构件
不建议覆盖顶级容器(如JFrame
)的paint
方法。它们包含大量子组件,可能会干扰您的绘制,很容易使绘制过程出错。1)不要扩展JFrame
2)在JComponent
或JPanel
中进行自定义绘制。3)对于这些组件,覆盖paintComponent(Graphics)
(或者替代2和3,将渲染绘制到BufferedImage
)4)为了更快地获得更好的帮助,发布一个。1)不要扩展JFrame
2)在JComponent
或JPanel
中进行自定义绘制。3)对于这些组件,覆盖paintComponent(Graphics)
(或者替代2&3,将渲染绘制到缓冲图像中)4)为了更快地获得更好的帮助,请发布一条。谢谢@MadProgrammer!!我明白了,但现在,我不知道为什么只显示网格D:抱歉打扰了,他是代码:[link]()再次感谢!在向框架中添加任何内容之前,必须先设置内容窗格。更改内容窗格会删除旧的内容并替换为新的内容,同时保留所有先前存在的组件。谢谢@MadProgrammer!!我明白了,但现在,我不知道为什么只显示网格D:不好意思,他是代码:[link]()再次感谢!在向框架中添加任何内容之前,必须先设置内容窗格。更改内容窗格会删除旧的内容,并替换为新的内容,同时保留所有先前存在的组件。