62,615
社区成员
发帖
与我相关
我的任务
分享
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class xt extends JFrame implements ActionListener{
static JPanel jp;
JWindow jw;
JButton jb1,jb2;
static Container cp;
static int x0,y0,x,y;
static boolean flag=false;
static JLabel jl;
xt(){
cp=getContentPane();
cp.setBackground(Color.gray);
cp.setLayout(new FlowLayout(2,0,0));
jw=new JWindow(this);
jw.setSize(600,500);
Container jwcp=jw.getContentPane();
jp=new jj();
jwcp.add(jp);
jb1=new JButton("open"); jb1.addActionListener(this);
jb2=new JButton("close"); jb2.addActionListener(this);
jl=new JLabel("在这里拖动鼠标...",JLabel.CENTER);
jl.setVisible(false);
cp.add(jl);
cp.add(jb1);
cp.add(jb2);
cp.addMouseListener(new m());
cp.addMouseMotionListener(new mm());
setSize(400,300);
setVisible(true);
setLocation(650,550);
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==jb1){
jw.setVisible(true);
}else if(ae.getSource()==jb2){
jw.setVisible(false);
}
}
public static void main(String in[]){
xt xto=new xt();
}
}
class jj extends JPanel{
public void paintComponent(Graphics g){
if(xt.flag==true)
g.setColor(Color.blue);
else
g.setColor(Color.black);
int left=0;
int top=0;
int wt=0;
int ht=0;
if(xt.x0<xt.x){
left=xt.x0;
wt=xt.x-xt.x0;
}else{
left=xt.x;
wt=xt.x0-xt.x;
}
if(xt.y0<xt.y){
top=xt.y0;
ht=xt.y-xt.y0;
}else{
top=xt.y;
ht=xt.y0-xt.y;
}
g.drawRect(left,top,wt,ht);
}
}
class mm extends MouseMotionAdapter{
public void mouseDragged(MouseEvent me){
xt.x=me.getX();
xt.y=me.getY();
xt.jp.repaint(100l,0,0,800,600); //(1)
}
}
class m extends MouseAdapter{
public void mousePressed(MouseEvent me){
xt.x0=me.getX();
xt.y0=me.getY();
xt.flag=false;
xt.jp.repaint(100l,0,0,800,600); //(2)
}
public void mouseEntered(MouseEvent me){
xt.cp.setBackground(Color.lightGray);
xt.jl.setVisible(true);
}
public void mouseExited(MouseEvent me){
xt.cp.setBackground(Color.gray);
xt.jl.setVisible(false);
}
public void mouseReleased(MouseEvent me){
xt.flag=true;
xt.jp.repaint(100l,0,0,800,600); //(3)
}
}
if (c.isOpaque()) {
g.setColor(c.getBackground());
g.fillRect(0, 0, c.getWidth(),c.getHeight());
}
paint(g, c);
jp=new jj();
jp.setOpaque(false);
jwcp.add(jp);
g.clearRect(0,0,getWidth(),getHeight());
g.drawRect(left,top,wt,ht);