用java 在窗体中画一个简单图形。

我的java代码如下,在netbean中写的,怎么图形显示不出来呢?packagedrawshape;importjava.awt.*;importjava.awt.Ev... 我的java代码如下,在netbean中写的,怎么图形显示不出来呢?
package drawshape;
import java.awt.*;
import java.awt.Event.*;
import javax.swing.*;
//import javax.swing.Timer;
import java.awt.BasicStroke;
//import java.util.Date;
//import java.text.*;
//import java.util.*;

public class Main {
public void paint(Graphics g){
Graphics2D a2d= (Graphics2D)g;
int x=120,y=90,width=150,height=150;
a2d.setColor(Color.red);
a2d.setStroke(new BasicStroke(3.0f)); //设置线条宽度,3.0即线的宽度
a2d.drawOval(x, y, width, height);
}

public static void main(String[] args) {
JFrame frame=new JFrame();
// frame.add(new paint(),BorderLayout.CENTER);
frame.setSize(500,500);
frame.setLocation(200,200);
frame.setVisible(true);
frame.paint(null);

// TODO code application logic here

}

}
希望帮我看一下,谢谢~~~~
展开
 我来答
百度网友033fa8e
推荐于2018-05-18 · 超过14用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:40.9万
展开全部
帮你改了一下。
你要画在panel上,然后frame.add(panel)就能显示。
是不是和applet搞混了,applet复写一些方法就能显示,但现在你编的是java gui

import java.awt.*;
import java.awt.Event.*;
import javax.swing.*; //import javax.swing.Timer;
import java.awt.BasicStroke;

//import java.util.Date;
//import java.text.*;
//import java.util.*;

public class TestGui {
public void paint(Graphics g) {
Graphics2D a2d = (Graphics2D) g;
int x = 120, y = 90, width = 150, height = 150;
a2d.setColor(Color.red);
a2d.setStroke(new BasicStroke(3.0f)); // 设置线条宽度,3.0即线的宽度
a2d.drawOval(x, y, width, height);
}

public static void main(String[] args) {
JFrame frame = new JFrame();
// frame.add(new paint(),BorderLayout.CENTER);
frame.setSize(500, 500);
frame.setLocation(200, 200);
frame.setVisible(true);
Panel p = new Panel();
frame.add(p);

// frame.paint(null);

// TODO code application logic here

}
}

class Panel extends JPanel {

// 重新覆盖paint方法
public void paint(Graphics g) {
super.paint(g);
Graphics2D a2d = (Graphics2D) g;
int x = 120, y = 90, width = 150, height = 150;
a2d.setColor(Color.red);
a2d.setStroke(new BasicStroke(3.0f)); // 设置线条宽度,3.0即线的宽度
a2d.drawOval(x, y, width, height);

}
}
草原上的恶狼
推荐于2016-07-16
知道答主
回答量:18
采纳率:0%
帮助的人:24.9万
展开全部
应该是:

import java.awt.*;
import java.awt.Event.*;
import javax.swing.*;
//import javax.swing.Timer;
import java.awt.BasicStroke;
//import java.util.Date;
//import java.text.*;
//import java.util.*;
public class Main extends JFrame//继承
{
public Main()
{
super("hanxiong-JFrame");
Toolkit img=Toolkit.getDefaultToolkit();
Image im=img.getImage("javalogo.gif");
setIconImage(im);
setSize(800, 600);
setLocation(400, 200);
setVisible(true);
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D a2d= (Graphics2D)g;
int x=120,y=90,width=150,height=150;
a2d.setColor(Color.red);
a2d.setStroke(new BasicStroke(3.0f)); //设置线条宽度,3.0即线的宽度
a2d.drawOval(x, y, width, height);
}

public static void main(String[] args) {
new Main();
}
}

参考资料: java图形界面设计

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zdhs123
2011-06-12 · TA获得超过126个赞
知道答主
回答量:60
采纳率:0%
帮助的人:46.4万
展开全部
Graphics2D a2d= (Graphics2D)g; 去掉这句你试试,这句话我觉得多此一举。
因为你不能确定这个过程中发生了什么转换过程之类的,直接g.setColor(....);就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式