Java bottom right popover sample share

  • 2020-04-01 03:17:17
  • OfStack


package com.wolf.action;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDialog;
import javax.swing.Timer;
public class Demo extends Timer {
 private static final long serialVersionUID = 2791827603307165823L;
 public Demo(int arg0, ActionListener arg1) {
  super(arg0, arg1);
 }
 public static void main(String[] args) {
  MyDialog mydialog = new MyDialog();
  int height = 150;
  TimerAction timerAction = new TimerAction(mydialog);
  Timer timer = new Timer(0, timerAction);
  timer.start();
  for (int i = 0; i < 10; i++) {
   try {
    Thread.sleep(100);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   height = height + 5;
   timerAction.setHeight(height);
  }
  timer.stop();
  new Demo(1, timerAction);
 }
}
class TimerAction implements ActionListener {
 private MyDialog mydialog = null;
 private int height = 0;
 public void setHeight(int height) {
  this.height = height;
 }
 public TimerAction(MyDialog mydialog) {
  this.mydialog = mydialog;
 }
 public void actionPerformed(ActionEvent event) {
  mydialog.setLocation(((int) mydialog.getScreenSize().getWidth()) - 200,
    ((int) mydialog.getScreenSize().getHeight() - 20 - height));
  mydialog.setSize(new Dimension(200, height));
 }
}
class MyDialog extends JDialog {
 private static final long serialVersionUID = 2791827603307165823L;
 private Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
 public Dimension getScreenSize() {
  return screenSize;
 }
 public MyDialog() {
  super();
  init();
 }
 private void init() {
  this.getContentPane().setLayout(new BorderLayout());
  this.setLocation(((int) screenSize.getWidth()) - 200,
    ((int) screenSize.getHeight() - 20));
  this.setVisible(true);
  this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
 }
}


Related articles: