展开全部
首先,把内容画在一个 JPanel 里,然后用 setContentPane 添加到了 JFrame 上,这样做是因为定位问题:JFrame 有边框,绘制组件的时候坐标是算边框占位的,但是 drawLine 的时候是不算的,为了统一算边框,就用了这个办法。
其次,下面是两个文件,第一个 MyFrame 是一个完整的工具,MyFrame 因为继承了 JFrame,和 JFrame 一样用,另外提供了一个接口,addComponent(JComponent) 方法可以向里添加组件,会自动连线的。你只要 import ui 就可以用了。
然后,第二个是测试类,可以看到我在 setVisible 之后添加的组件,它也能正确显示,证明 addComponent 方法可以随时调用,不用另外刷新。
其次,下面是两个文件,第一个 MyFrame 是一个完整的工具,MyFrame 因为继承了 JFrame,和 JFrame 一样用,另外提供了一个接口,addComponent(JComponent) 方法可以向里添加组件,会自动连线的。你只要 import ui 就可以用了。
然后,第二个是测试类,可以看到我在 setVisible 之后添加的组件,它也能正确显示,证明 addComponent 方法可以随时调用,不用另外刷新。
展开全部
是说画直线吗?
用
Graphics g;
g.drawLine(x1,y1,x2,y2); //x1,y1,x2,y2分别是两个端点的座标.
还得先引入一个包import java.awt.*;
用
Graphics g;
g.drawLine(x1,y1,x2,y2); //x1,y1,x2,y2分别是两个端点的座标.
还得先引入一个包import java.awt.*;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class DrawExample extends Applet
implements MouseListener,
MouseMotionListener
{
// “全局变量”
Font bigFont;
// 颜色
Color redColor;
Color specialColor;
Color bgColor;
CircleDraw circle;
int topX;
int topY;
int curX;
int curY;
//int cirR;
public void init()
{
bigFont = new Font("Arial",Font.BOLD,26);
// 标准色
redColor = Color.red;
// R(ed)G(reen)B(lue)色
specialColor = new Color(60,60,122);
//背景色
bgColor = Color.gray;//Color.blue;
circle = new CircleDraw(0,0,0,0);
setBackground(bgColor);
addMouseListener(this);
addMouseMotionListener(this);
}
public void stop()
{
//啥也不干
}
// 在这里画图形
public void paint(Graphics g)
{
// 设置字体
g.setFont(bigFont);
g.drawString("Shapes and Colors",80,40);
// 改变颜色
g.setColor(redColor);
// 画正方形 (xco,yco,xwidth,height);
g.drawRect(100,100,100,100);
// 填长方形
g.fillRect(110,110,80,80);
// 改变颜色
g.setColor(specialColor);
// 画圆 (int x, int y, int width, int height,int startAngle, int arcAngle);
g.fillArc(120,120,60,60,0,270);
// 改变颜色
g.setColor(Color.yellow);
// 画一条直线 (int x1, int y1, int x2, int y2)
g.drawLine(140,140,160,160);
circle = new CircleDraw(topX,topY,curX-topX,curY-topY);
circle.draw(g);
}
//实现MouseListener接口
public void mouseClicked(MouseEvent e){ }
public void mouseEntered(MouseEvent e){ }
public void mouseExited(MouseEvent e){ }
public void mousePressed(MouseEvent e)
{
topX = e.getX();
topY = e.getY();
curX = e.getX();
curY = e.getY();
}
public void mouseReleased(MouseEvent e)
{
//repaint();
}
//实现MouseMotionListener接口
public void mouseDragged(MouseEvent e)
{
curX = e.getX();
curY = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) { }
public static void main(String[] args)
{
JFrame frame = new JFrame("My Applet");
DrawExample app = new DrawExample();
app.init();
frame.getContentPane().add(app);
frame.setBounds(200,100,300,150);
frame.show();
}
}
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class DrawExample extends Applet
implements MouseListener,
MouseMotionListener
{
// “全局变量”
Font bigFont;
// 颜色
Color redColor;
Color specialColor;
Color bgColor;
CircleDraw circle;
int topX;
int topY;
int curX;
int curY;
//int cirR;
public void init()
{
bigFont = new Font("Arial",Font.BOLD,26);
// 标准色
redColor = Color.red;
// R(ed)G(reen)B(lue)色
specialColor = new Color(60,60,122);
//背景色
bgColor = Color.gray;//Color.blue;
circle = new CircleDraw(0,0,0,0);
setBackground(bgColor);
addMouseListener(this);
addMouseMotionListener(this);
}
public void stop()
{
//啥也不干
}
// 在这里画图形
public void paint(Graphics g)
{
// 设置字体
g.setFont(bigFont);
g.drawString("Shapes and Colors",80,40);
// 改变颜色
g.setColor(redColor);
// 画正方形 (xco,yco,xwidth,height);
g.drawRect(100,100,100,100);
// 填长方形
g.fillRect(110,110,80,80);
// 改变颜色
g.setColor(specialColor);
// 画圆 (int x, int y, int width, int height,int startAngle, int arcAngle);
g.fillArc(120,120,60,60,0,270);
// 改变颜色
g.setColor(Color.yellow);
// 画一条直线 (int x1, int y1, int x2, int y2)
g.drawLine(140,140,160,160);
circle = new CircleDraw(topX,topY,curX-topX,curY-topY);
circle.draw(g);
}
//实现MouseListener接口
public void mouseClicked(MouseEvent e){ }
public void mouseEntered(MouseEvent e){ }
public void mouseExited(MouseEvent e){ }
public void mousePressed(MouseEvent e)
{
topX = e.getX();
topY = e.getY();
curX = e.getX();
curY = e.getY();
}
public void mouseReleased(MouseEvent e)
{
//repaint();
}
//实现MouseMotionListener接口
public void mouseDragged(MouseEvent e)
{
curX = e.getX();
curY = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) { }
public static void main(String[] args)
{
JFrame frame = new JFrame("My Applet");
DrawExample app = new DrawExample();
app.init();
frame.getContentPane().add(app);
frame.setBounds(200,100,300,150);
frame.show();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询