一个动作,多个人感兴趣,存引用

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test
{

 /**
  * @param args
  */
 public static void main(String[] args)
 {
  MyFrame mf = new MyFrame();
  mf.setSize(300, 400);
  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  mf.setLocation(d.width / 2, 0);
  mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  mf.setVisible(true);
 }

}

class MyFrame extends JFrame
{
 public MyFrame()
 {
  total = 0;
  d = Toolkit.getDefaultToolkit().getScreenSize();
  panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
  closeAll = new JButton("CloseAll");
  newJFrame = new JButton("New Frame");
  newJFrame.addActionListener(new ActionListener()
  {
   NewFrame f;

   public void actionPerformed(ActionEvent e)
   {
    f = new NewFrame(d.width / (total + 100), d.width
      / (total + 100));
    TotalnewFrame.add(f);
    total++;
   }
  });
  closeAll.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    for (NewFrame f : TotalnewFrame)
    {
     f.dispose();
     total--;
    }
   }
  });
  panel.add(newJFrame);
  panel.add(closeAll);
  this.add(panel);
 }

 private static final long serialVersionUID = 1L;
 private ArrayList<NewFrame> TotalnewFrame = new ArrayList<NewFrame>();
 private Dimension d;
 private JButton closeAll;
 private JButton newJFrame;
 private int total;
 private JPanel panel;
}

class NewFrame extends JFrame
{
 private static final long serialVersionUID = 1L;
 private Point p;

 public NewFrame(int i, int j)
 {
  cx += dx;
  cy += dy;
  this.setTitle("this is the new JFrame");
  p = new Point(cx, cy);
  this.setLocation(p);
  this.setSize(200, 300);
  this.setVisible(true);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

 private final static int dx = 20;
 private final static int dy = 20;
 private static int cx = 0;
 private static int cy = 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值