📄 colitest.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class ColiTest extends Applet implements MouseListener,MouseMotionListener
{
private final int NUM_RECTS = 10;
private LinkedList rectangles;
private AlphaComposite alpha;
private Rectangle2D pick;
private Panel p;
private Label j ;
public void init()
{ p = new Panel();
j = new Label();
rectangles = new LinkedList();
pick = null;
alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5f);
Random r = new Random();
int width = (int)getSize().getWidth();
int height = (int)getSize().getHeight();
for(int i = 0;i<NUM_RECTS;i++)
{
rectangles.add(new Rectangle2D.Double((double)(Math.abs(r.nextInt())%width),
(double)(Math.abs(r.nextInt())%height),
(double)(20+Math.abs(r.nextInt())%50),
(double)(20+Math.abs(r.nextInt())%50)));
}
p.setBackground(Color.BLUE);
p.add(j);
setLayout(new BorderLayout());
add(p,BorderLayout.SOUTH);
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g)
{ //j.setText("鼠标在");
Graphics2D g2d=(Graphics2D)g;
g2d.setComposite(alpha);
g2d.setPaint(Color.BLACK);
for(int i = 0;i<NUM_RECTS;i++)
{
g2d.draw((Rectangle2D.Double)rectangles.get(i));
}
if(pick != null)
{
Rectangle2D rect;
g2d.setPaint(Color.RED.darker());
for(int i = 0;i<NUM_RECTS;i++)
{
rect = (Rectangle2D)rectangles.get(i);
if(pick != rect && pick.intersects(rect))
{
g2d.fill(rect);
}
}
g2d.setPaint(Color.BLUE.brighter());
g2d.fill(pick);
}
}
public void mouseClicked(MouseEvent e){/*j.setText("["+e.getX()+","+e.getY()+"]");*/}//当鼠标指针停留在某一组件上,按下并释放鼠标按按纽时被调用
public void mouseEntered(MouseEvent e){}//当鼠标指针进入某一构件件的区域时调用
public void mouseExited(MouseEvent e){j.setText("[窗口外]");}//当鼠标指针被移出某一构件区域时被调用
public void mousePressed(MouseEvent e)//当鼠标指针在某一组件上,并且按下鼠标按纽时被调用
{ //j.setText("["+e.getX()+","+e.getY()+"]");
if(pick == null)
{
Rectangle2D rect;
for(int i = 0;i<NUM_RECTS;i++)
{
rect=(Rectangle2D)rectangles.get(i);
if(rect.contains(e.getPoint()))
{
pick = rect;
return;
}
}
}
}
public void mouseReleased(MouseEvent e)//当鼠标按纽按下并且移动鼠标时调用,该事件发生在PRESS事件之后
{ //j.setText("["+e.getX()+","+e.getY()+"]");
pick = null;
repaint();
}
public void mouseDragged(MouseEvent e)//当鼠标指针在某一构件上按下后,再释放鼠标按纽时调用,发生在PRESS事件之后
{j.setText("["+e.getX()+","+e.getY()+"]");
if(pick != null)
{
pick.setRect(e.getX(),e.getY(),pick.getWidth(),pick.getHeight());
repaint();
}
}
public void mouseMoved(MouseEvent e){j.setText("["+e.getX()+","+e.getY()+"]");}//当鼠标指针指在某一构件上并移动鼠标按纽时调用
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -