如何在JPanel中绘制曲线 我要在JPanel中绘制一条曲线应该怎么画啊,请大虾们帮帮忙?请给出具体的实现过程 如果曲线太复杂 就画条直线也可. 我主要想看看是怎么实现的.谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 尝试用这个 Canvas 类,专门用来画图的,class TestDraw extends Canvas{ public void paint(Graphics g){ g.drawLine(x1, y1, x2, y2); }}随手写的伪代码,大致是这样的!在 Canvas 里画图,再把它放进Panel里。 不知道你具体意图是什么?不知这样是否满足你要求:import javax.swing.*;import java.awt.*;import java.awt.geom.*;public class DrawPanel extends JPanel{public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2=(Graphics2D)g; g2.setColor(Color.RED); g2.draw(new Line2D.Double(0,0,500,500));}public static void main(String[] args){JFrame frame=new JFrame();frame.setSize(600,600);frame.getContentPane().add(new DrawPanel());frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}} 在JPanel中绘制图形,我一直都是用楼上的这种方法.绘制曲线,用的是把曲线分成一小段一小段的线段,然后把这些线段连起来,看上去就是曲线了,在计算机上绘制曲线,都是用这种用小线段来逼近曲线的,当线段越短时,看起来就更平滑,就越接近曲线. 基本的图形都给你画出来了import java.awt.*;import java.awt.event.*;import javax.swing.*;class DemoPanel extends JPanel{ public void paintComponent(Graphics g) { g.setFont(new Font("宋体",Font.PLAIN+Font.BOLD,14)); g.setColor(Color.gray); g.drawLine(0,0,250,50); g.drawLine(50,0,80,60); g.drawLine(30,0,200,100); g.setColor(Color.black); g.drawOval(30,0,60,40); g.drawRoundRect(150,-20,80,40,10,10); g.setColor(Color.gray); g.fillRoundRect(60,30,80,40,10,10); g.setColor(Color.black); g.fillOval(80,0,80,40); }}class DemoFrame extends JFrame{ public DemoFrame() { setBackground(Color.white); setTitle("绘制图形"); setSize(300,200); addWindowListener(new WindowAdapter(){ public void windowClosng(WindowEvent evt){ System.exit(0); } }); Container con=getContentPane(); con.add(new DemoPanel()); } public static void main(String args[]) { DemoFrame f=new DemoFrame(); f.show(); }} http://www.blogjava.net/Swing/archive/2007/04/27/113869.html用Swing写的仿jfreechart的曲线面板及源码 关于static静态方法的问题! POI向带有表头的excel模板里写入数据,写完后就把表头置空了 关于继承问题(第二个)? 怎样暂时停止一个thread,然后我给一个命令thread继续 如何在java中运行 jar 包? 为什么跳不出去啊! 怎样配置我的java环境? 是一个文件内容读入数组的问题? 有没有人对邮件服务器有兴趣,手头有一个开源的,实现了POP3/SMTP协议的最小功能集,想在此基础上实现一些其他的协议,如SMTP扩展(命令 java上机试题,大家来练练手 JAVA运行环境问题 能不能通过一个String迅速索引到一个值?(不用Map这样的类)
public void paint(Graphics g){
g.drawLine(x1, y1, x2, y2);
}
}随手写的伪代码,大致是这样的!在 Canvas 里画图,再把它放进Panel里。
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;public class DrawPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
g2.setColor(Color.RED);
g2.draw(new Line2D.Double(0,0,500,500));
}
public static void main(String[] args){
JFrame frame=new JFrame();
frame.setSize(600,600);
frame.getContentPane().add(new DrawPanel());
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
绘制曲线,用的是把曲线分成一小段一小段的线段,然后把这些线段连起来,看上去就是曲线了,在计算机上绘制曲线,都是用这种用小线段来逼近曲线的,当线段越短时,看起来就更平滑,就越接近曲线.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class DemoPanel extends JPanel
{
public void paintComponent(Graphics g)
{
g.setFont(new Font("宋体",Font.PLAIN+Font.BOLD,14));
g.setColor(Color.gray);
g.drawLine(0,0,250,50);
g.drawLine(50,0,80,60);
g.drawLine(30,0,200,100);
g.setColor(Color.black);
g.drawOval(30,0,60,40);
g.drawRoundRect(150,-20,80,40,10,10);
g.setColor(Color.gray);
g.fillRoundRect(60,30,80,40,10,10);
g.setColor(Color.black);
g.fillOval(80,0,80,40);
}
}
class DemoFrame extends JFrame
{
public DemoFrame()
{
setBackground(Color.white);
setTitle("绘制图形");
setSize(300,200);
addWindowListener(new WindowAdapter(){
public void windowClosng(WindowEvent evt){
System.exit(0);
}
});
Container con=getContentPane();
con.add(new DemoPanel());
}
public static void main(String args[])
{
DemoFrame f=new DemoFrame();
f.show();
}
}
用Swing写的仿jfreechart的曲线面板及源码