新手,请问在java中画怎样画不同粗细的直线呢?

hfs1978 2004-08-05 11:10:37
请问在java中画怎样画不同粗细的直线、虚线和不同粗细边框的正方形,三角形等,谢谢
...全文
318 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfs1978 2004-08-13
  • 打赏
  • 举报
回复
这是自然,谢谢 ztc16627(无语)
ztc16627 2004-08-13
  • 打赏
  • 举报
回复
你用
drawLine函数分别画出正方形的四条边.(分别设置它们的粗细)
hfs1978 2004-08-13
  • 打赏
  • 举报
回复
ok,我一开始没有仔细的看,对不起,那么如果画正方形时可以用不同粗细的线去画吗?
ztc16627 2004-08-12
  • 打赏
  • 举报
回复
你看看我刚刚贴的代码!!!

final static float dash1[] = {10.0f}; //新加
final static BasicStroke dashed = new BasicStroke(1.0f, //新加
BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER,
10.0f, dash1, 0.0f);
g2.setStroke(dashed);

hfs1978 2004-08-12
  • 打赏
  • 举报
回复
谢谢ztc16627(无语),那么请问虚线怎么画呢
hfs1978 2004-08-11
  • 打赏
  • 举报
回复
接着请问虚线怎么画?
hfs1978 2004-08-11
  • 打赏
  • 举报
回复
谢谢,问题已解决,特别感谢ztc16627(无语) ,因为你给的例子和我昨天晚上凑出来的一样,就是将Graphics的变量g强制转换成Graphics2D的g2
nako_ruru 2004-08-11
  • 打赏
  • 举报
回复
好像是Graphics#setStroke(java.awt.graphics.Stroke)
ztc16627 2004-08-11
  • 打赏
  • 举报
回复
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.applet.*;

public class FloatLine extends JApplet
{
final static Color bg = Color.white;
final static Color fg = Color.black;
final static BasicStroke stroke = new BasicStroke(2.0f);
final static BasicStroke wideStroke = new BasicStroke(8.0f);
final static float dash1[] = {10.0f}; //新加
final static BasicStroke dashed = new BasicStroke(1.0f, //新加
BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER,
10.0f, dash1, 0.0f);

public void init() {
//Initialize drawing colors
setBackground(bg);
setForeground(fg);
}

public void paint( Graphics g )
{
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(dashed);
g2.setColor( Color.red );
g2.drawLine(20,50,100,80);
g2.setStroke(wideStroke);
g2.drawLine(50,100,120,100);
}


public static void main(String s[]) {
JFrame f = new JFrame("FloatLine");
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
JApplet applet = new FloatLine();
f.getContentPane().add("Center", applet);
applet.init();
f.pack();
f.setSize(new Dimension(550,400));
f.show();
}

}
fuzhe 2004-08-10
  • 打赏
  • 举报
回复
画线直接用Graphics的drawLine方法就可以了
ztc16627 2004-08-10
  • 打赏
  • 举报
回复
给你一个例子:
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.applet.*;

public class FloatLine extends JApplet
{
final static Color bg = Color.white;
final static Color fg = Color.black;
final static BasicStroke stroke = new BasicStroke(2.0f);
final static BasicStroke wideStroke = new BasicStroke(8.0f);

public void init() {
//Initialize drawing colors
setBackground(bg);
setForeground(fg);
}

public void paint( Graphics g )
{
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(stroke);
g2.setColor( Color.red );
g2.drawLine(20,50,100,80);
g2.setStroke(wideStroke);
g2.drawLine(50,100,120,100);
}


public static void main(String s[]) {
JFrame f = new JFrame("FloatLine");
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
JApplet applet = new FloatLine();
f.getContentPane().add("Center", applet);
applet.init();
f.pack();
f.setSize(new Dimension(550,400));
f.show();
}

}
hfs1978 2004-08-10
  • 打赏
  • 举报
回复
画线我知道怎么画了,但是粗细我不知道啊
hfs1978 2004-08-09
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.applet.*;

public class FloatLine extends Applet
{
public void paint( Graphics2D g )
{
Rectangle r = getBounds();
Line2D.Float line;
line = new Line2D.Float(20,20,200,200);
g.setStroke(new BasicStroke(2.0f));
g.setColor( Color.red );
g.draw(line);
}

public void processEvent( AWTEvent e )
{
if ( e.getID() == Event.WINDOW_DESTROY )
{
System.exit( 0 );
}
}
}
这个小程序编译通过了,怎么不能在浏览器上画出相应的图形呢,请高手指教
hfs1978 2004-08-09
  • 打赏
  • 举报
回复
怎么没有人回答我的问题啊?
ztc16627 2004-08-05
  • 打赏
  • 举报
回复
利用BasicStroke类.
先创建一个BasicStroke类对象.然后通过Graphics2D 的setStroke 方法将直线的Styles传递给Graphics2D
hfs1978 2004-08-05
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.applet.*;

public class FloatLine extends Applet
{
public void paint( Graphics g )
{
Rectangle r = getBounds();
Line2D.Float line;
line = new Line2D.Float(20,20,200,200);
g.setStroke(new BasicStroke(2.0f));
g.setColor( Color.red );
g.draw(line);
}

public void processEvent( AWTEvent e )
{
if ( e.getID() == Event.WINDOW_DESTROY )
{
System.exit( 0 );
}
}
}
可是我这个简单的程序编译都不能通过呢?请高手指教

67,518

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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