zoukankan      html  css  js  c++  java
  • Swing Text

    import java.awt.*;
    import javax.swing.*;
    import java.awt.Event.*;
    import java.awt.geom.*;
    import javax.swing.event.*;
    
    public class TextTest {
        public static void main(String[] args){
            new TextFrame();
        }
    
    }
    class TextFrame extends JFrame {
        private ClockPanel clock;
        private JTextField hourField;
        private JTextField minuteField;
        public TextFrame(){
            
            clock = new ClockPanel();
            add(clock,BorderLayout.CENTER);
            
            JPanel input = new JPanel();
            add(input,BorderLayout.SOUTH);
            
            hourField = new JTextField("3",2);
            minuteField = new JTextField("0",2);
            ClockListener listener = new ClockListener(); 
            hourField.getDocument().addDocumentListener(listener);
            minuteField.getDocument().addDocumentListener(listener);
            
            input.add(new JLabel("Hour:"));
            input.add(hourField);
            input.add(new JLabel("Minute:"));
            input.add(minuteField);
            
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLocation(300,300);
            setSize(400,450);
            setVisible(true);
            
            
        }
        private class ClockListener implements DocumentListener {
            public void insertUpdate(DocumentEvent e){
                setClock();
            }
            public void removeUpdate(DocumentEvent e) {
                setClock();
            }
            public void changedUpdate(DocumentEvent e){
                setClock();
            }
        }
        private void setClock(){
            int hour = 0;
            int min = 0;
            try {
            hour = Integer.parseInt(hourField.getText());
            min = Integer.parseInt(minuteField.getText());
            } catch (NumberFormatException e){ return;}
            clock.setTime(hour,min);
        }
    }
    class ClockPanel extends JPanel {
        private int hour;
        private int minute;
        public ClockPanel(){
            this.hour = 3;
            this.minute = 0;
        }
        public void paintComponent(Graphics g ) {
            double hourangle;
            double minuteangle;
            System.out.println("draw"+hour+":"+minute);
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g;
        
            
            Ellipse2D circle = new Ellipse2D.Double(0, 0, 380, 380);
            g2.draw(circle);
            //注意int计算,类型转换问题
            hourangle = (60.0*hour+minute)/(12*60)*2*(Math.PI);
            minuteangle = minute/60.0*2*(Math.PI);
            //System.out.println("angle"+hourangle+":"+minuteangle);
            Point2D hourpoint = new Point2D.Double(190+100*Math.sin(hourangle),190-100*Math.cos(hourangle));
            Point2D minutepoint = new Point2D.Double(190+180*Math.sin(minuteangle),190-180*Math.cos(minuteangle));
            Point2D center = new Point2D.Double(190,190);
            
            g2.draw(new Line2D.Double(center, hourpoint));
            g2.draw(new Line2D.Double(center, minutepoint));
        }
        public void setTime(int hour,int minute){
            this.hour = hour;
            this.minute = minute;
            repaint();
        }
    }
  • 相关阅读:
    实战练习6—水波纹制作
    实战练习5—冰块中的效果
    实战练习4—逼真眼泪
    5、选择工具&描边
    实战练习3-修饰服装皱褶
    实战练习2—方块
    实战练习1—照片的局部放大
    23、裁剪
    iOS 处理第三方SDK冲突问题
    iOS 修改启动图无效
  • 原文地址:https://www.cnblogs.com/qqjue/p/2502616.html
Copyright © 2011-2022 走看看