两个Java窗口小程序
连线拖动,拖动线的头和尾到任意位置,刚打开的时候:

一条线刚出现的时候:

两条线随意拖动的时候:

一个三角形组件,测试鼠标是否点击了它:

三角形组件的代码比较少,就列到下面吧
//
// 三角形的组件
//
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TriangleTest extends javax.swing.JFrame
{
public static void main(String[] args)
{
TriangleTest tt = new TriangleTest();
tt.setSize(400, 300);
tt.setVisible(true);
}
public TriangleTest()
{
super("Triangle Test");
getContentPane().setLayout(new java.awt.FlowLayout());
Triangle t = new Triangle();
getContentPane().add(t);
//给组件添加事件
t.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent event)
{
System.out.println("You cicked on the triangle");
}
});
}
}
class Triangle extends JComponent
{
protected Polygon activeRegion;
public Triangle()
{
setPreferredSize(new Dimension(100, 100));
}
public boolean contains(int x, int y)
{
return activeRegion.contains(x, y);
}
public void setBounds(int x, int y, int width, int height)
{
super.setBounds(x, y, width, height);
int[] xpoints = new int[3];
int[] ypoints = new int[3];
xpoints[0] = (width -1) / 2;
ypoints[0] = 0;
xpoints[1] = 0;
ypoints[1] = height - 1;
xpoints[2] = width -1;
ypoints[2] = height -1;
activeRegion = new Polygon(xpoints, ypoints, 3);
}
public void paintComponent(Graphics g)
{
g.setColor(getForeground());
g.fillPolygon(activeRegion);
}
}
作者:杨志鹏
2010年1月整理