问题描述
- java图形中如何无面板直接显示JComponent图形
-
如题,自己编写一个继承自JComponent的类并重写了paint()方法,但是直接初始化这个类无法显示图形,只有初始化一个面板(JFrame,Frame)再在面板上add这个组件才能显示
但JFrame,Frame自己就是继承自组件类(Component,JComponent),为何面板一经初始化就能显示,而我写的包括一些
基础库里继承自JComponent的类,如JButton,JPanel啊,都没办法直接初始化显示呢。
代码如下:class JFrameDemo extends JFrame()
{public static void main(String[] args) { JFrameDemo a=new JFrameDemo() a.setVisible(true); a.setSize(300,300); }
}
//可以显示一个300,300的面板。
class JComponentDemo extends JComponent
{
public void paint(Graphics g)
{
g.setColor(Color.RED);
g.fillRect(0, 0, 300, 300);
}
public static void main(String[] args)
{
JComponentDemo b=new JComponentDemo()
b.setSize(300,300);
b,setVisible(true);
}}
//什么都没有,甚至连个java进程都没有启动,JFrame也是继承自JComponent,它怎么启动paint的进程的呢。
解决方案
以前看过一些,不过忘记了。不过JFrame是继承自Window的。
解决方案二:
matlab直接保存图形而不显示图形
时间: 2024-08-03 12:28:18