怎样画矩形呀

gzzhuna1 2002-09-09 09:19:59
想在panel中画一矩形,为啥画不出来呀?
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;

public class myclspaneltest extends JApplet
{
public void init()
{
Container mycontainer01=getContentPane();
myPanel mypanel02=new myPanel();
mycontainer01.setLayout(new FlowLayout());
mycontainer01.add(mypanel02);
}
}


class myPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
update(g);
}

public void update(Graphics g)
{
g.drawOval(100,100,50,50);
}
}
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzzhuna1 2002-09-10
  • 打赏
  • 举报
回复
namowen(寒号不已)兄,还是不行呀,原程序如下,指教指教呀!

import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;

/*
<applet code="myclspaneltest" width=300 height=300>
</applet>
*/

public class myclspaneltest extends JApplet
{
public void init()
{
Container mycontainer01=getContentPane();
TitledBorder mytitleborder01=new TitledBorder("mypanel01 border");
JButton mybutton01=new JButton("Center");
JButton mybutton02=new JButton("This North");
JButton mybutton03=new JButton("This is a test");
JPanel mypanel01=new JPanel();
myPanel mypanel02=new myPanel();

mycontainer01.setLayout(new FlowLayout());
mycontainer01.setSize(new Dimension(250, 200));
mypanel01.setLayout(new BorderLayout());
mypanel01.setBorder(mytitleborder01);
mypanel01.setBorder(BorderFactory.createLineBorder(Color.blue,2));
mypanel02.setBorder(BorderFactory.createLineBorder(Color.red,2));

mypanel01.add(mybutton01,BorderLayout.CENTER);
mypanel01.add(mybutton02,BorderLayout.NORTH);
mypanel02.add(mybutton03);
mycontainer01.add(mypanel01);
mycontainer01.add(mypanel02);
}
}


class myPanel extends JPanel
{
public void paint(Graphics g)
{
super.paint(g);
update(g);
}

public void update(Graphics g)
{
g.drawOval(100,100,50,50);
}
}
namowen 2002-09-10
  • 打赏
  • 举报
回复
mycontainer01.setLayout(new FlowLayout());
mypanel02的父容器你设为FlowLayout,其大小是自动设定的。运行后,你会发现mypanel02是很小的,你要画(100,100,50,50),已经超出了它的范围,当然看不到了。另外,重载paintComponent()方法也是可以的。
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;

/*
<applet code="myclspaneltest" width=300 height=300>
</applet>
*/

public class myclspaneltest extends JApplet
{
public void init()
{
Container mycontainer01=getContentPane();
TitledBorder mytitleborder01=new TitledBorder("mypanel01 border");
JButton mybutton01=new JButton("Center");
JButton mybutton02=new JButton("This North");
JButton mybutton03=new JButton("This is a test");
JPanel mypanel01=new JPanel();
myPanel mypanel02=new myPanel();

mycontainer01.setLayout(new GridLayout());
mycontainer01.setSize(new Dimension(250, 200));
mypanel01.setLayout(new BorderLayout());
mypanel01.setBorder(mytitleborder01);
mypanel01.setBorder(BorderFactory.createLineBorder(Color.blue,2));
mypanel02.setBorder(BorderFactory.createLineBorder(Color.red,2));

mypanel01.add(mybutton01,BorderLayout.CENTER);
mypanel01.add(mybutton02,BorderLayout.NORTH);
mypanel02.add(mybutton03);
mycontainer01.add(mypanel01);
mycontainer01.add(mypanel02);
}
}


class myPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
update(g);
}

public void update(Graphics g)
{
g.drawRect(100,100,50,60);
}
}
namowen 2002-09-09
  • 打赏
  • 举报
回复
重载paint()方法,不要重载paintComponent()。另外,drawOval也不是画矩形啊。
class myPanel extends JPanel
{
public void paint(Graphics g)
{
super.paint(g);
update(g);
}

public void update(Graphics g)
{
g.drawRect(100,100,50,50);
}
}

gtfcccq 2002-09-09
  • 打赏
  • 举报
回复
在applet中最好不用javax.swing.*;包,一般的浏览器都不支持
import java.awt.*;
import java.applet.*;
public class Rectangles extends Applet {
public void paint(Graphics g) {
g.drawRect(10, 10, 60, 50);
g.fillRect(100, 10, 60, 50);
g.drawRoundRect(190, 10, 60, 50, 15, 15);
g.fillRoundRect(70, 90, 140, 100, 30, 40);
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧