“左手画圆,右手画方”

package leftandright;         //主方法

import java.awt.ComponentOrientation;

public class LeftAndRightFrame extends javax.swing.JFrame {

    public LeftAndRightFrame() {
        initComponents();
        this.setTitle("自定义窗口");
        this.setLocationRelativeTo(null);
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        left = new Left();
        Right = new Right();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        left.setBorder(javax.swing.BorderFactory.createTitledBorder("左手"));

        javax.swing.GroupLayout leftLayout = new javax.swing.GroupLayout(left);
        left.setLayout(leftLayout);
        leftLayout.setHorizontalGroup(
            leftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 183, Short.MAX_VALUE)
        );
        leftLayout.setVerticalGroup(
            leftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 276, Short.MAX_VALUE)
        );

        Right.setBorder(javax.swing.BorderFactory.createTitledBorder("右手"));

        javax.swing.GroupLayout RightLayout = new javax.swing.GroupLayout(Right);
        Right.setLayout(RightLayout);
        RightLayout.setHorizontalGroup(
            RightLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 187, Short.MAX_VALUE)
        );
        RightLayout.setVerticalGroup(
            RightLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 0, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(left, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Right, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(left, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(Right, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(LeftAndRightFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(LeftAndRightFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(LeftAndRightFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(LeftAndRightFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LeftAndRightFrame().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JPanel Right;
    private javax.swing.JPanel left;
    // End of variables declaration                   

}
package leftandright;   //画圆的方法

import java.awt.Color;
import java.awt.Graphics;

public class Left extends javax.swing.JPanel implements Runnable {

    public Left() {
        initComponents();
        new Thread(this).start();//启动(这个)线程
    }
    //  int line = 5;
    int x0 = 50;
    int x1 = 200;
    int y0 = 40;
    int y1 = 200;

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );
    }// </editor-fold>                        
    // Variables declaration - do not modify                     
    // End of variables declaration                   

    @Override
    public void run() {
        while ((true)) {
         
            if (x0 > 50 && y0 > 40 && y1 < 200 && x1 < 200) {
                x1 =200;
                x0 = 50;
                y0 = 40;
                y1 = 200;
            }
            
            for (; x0 < 200;) {
                x0 = x0 +15;
                this.repaint();//重绘调用这个方法,来重绘自己
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                }
            }
            for (; y0 < 200;) {
                y0 = y0 + 16;
                this.repaint();//重绘调用这个方法,来重绘自己
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                }
            }
            for (; x1 > 50;) {
                x1 = x1 - 15;
                this.repaint();//重绘调用这个方法,来重绘自己
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                }
            }
            for (; y1 > 40;) {
                y1 = y1 -16;

                this.repaint();//重绘调用这个方法,来重绘自己
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                }
            }
        }
    }

    @Override
    protected void paintComponent(Graphics g) {//g代表画笔来绘画
        super.paintComponent(g); //To change body of generated methods, choose Tools | Templates.

        g.setColor(Color.BLUE);
        g.drawLine(50, 40, x0, 40);
        g.drawLine(200, 40,200, y0);
        g.drawLine(200,200, x1,200);  
        g.drawLine(50,200, 50, y1);
    }
}

package leftandright;     //画方的方法

import java.awt.Color;
import java.awt.Graphics;

public class Right extends javax.swing.JPanel implements Runnable {

   

    int du = 0;

    public Right() {
        initComponents();
        new Thread(this).start();//启动(这个)线程
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );
    }// </editor-fold>                        
    // Variables declaration - do not modify                     
    // End of variables declaration                   

    @Override
    public void run() {
        while ((true)) {
            if (du == 360) {
                du = 0;
            }
            this.repaint();//重绘调用这个方法,来重绘自己
            try {
                Thread.sleep(100);
            } catch (InterruptedException ex) {
            }
           
            du +=1.9;
        }
    }

    @Override
    protected void paintComponent(Graphics g) {//g代表画笔来绘画
        super.paintComponent(g); //To change body of generated methods, choose Tools | Templates.
    
        for (int i = 0; i < du; i++) {
            g.setColor(Color.orange);
            g.fillArc(50, 100, 100, 100, 0, i);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值