java 镜头移动模拟(窗体背景图片设置,jlabel位置设置)

 

import java.awt.EventQueue;
import java.awt.Label;
import java.awt.Point;
import java.awt.Window;
import java.awt.event.KeyAdapter;

import javax.sound.sampled.LineUnavailableException;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JTextArea;
import java.awt.event.KeyEvent;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class frameBackground {

    private JFrame frame;
    
    private JTextField textField;
    private JLabel label_1;
    private JButton btnNewButton;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    frameBackground window = new frameBackground();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public frameBackground() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        
        
        frame.setResizable(false);
        frame.getContentPane().setLayout(null);
        frame.setTitle("镜头模拟");
        label_1=new JLabel();
        ImageIcon icon=new ImageIcon(getClass().getResource("2.jpg"));//背景
        ImageIcon glassimg=new ImageIcon(getClass().getResource("1.png"));//镜头
        label_1.setIcon(icon);
        label_1.setSize(icon.getIconWidth(), icon.getIconHeight());
        label_1.setLocation(-icon.getIconWidth()/3, -icon.getIconHeight()/3);
        frame.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                KeyAction(e);
            }
        });
        frame.getContentPane().add(label_1);
        
//        btnNewButton = new JButton("game");
//        btnNewButton.addMouseListener(new MouseAdapter() {
//            @Override
//            public void mouseClicked(MouseEvent e) {
//                
//                
//            }
//        });
//        btnNewButton.setBounds(333, 239, 101, 32);
//        frame.getContentPane().add(btnNewButton);
//        btnNewButton.setBackground(Color.RED);
        JLabel glassLable=new JLabel(glassimg);
        JPanel glasspane=new JPanel(new BorderLayout());
        glasspane.add(glassLable, BorderLayout.CENTER);
        glasspane.setOpaque(false);
        frame.setGlassPane(glasspane);
        frame.getGlassPane().setVisible(true);
        
    }
    
    public void KeyAction(final KeyEvent e)
    {
        int code=e.getKeyCode();
        Point location=label_1.getLocation();
        int step=3;
        switch(code)
        {
        case KeyEvent.VK_RIGHT:
            if(location.x>(frame.getWidth()-label_1.getWidth()))
            {
                label_1.setLocation(location.x-step, location.y);
                System.out.println("right");
            }
            break;
        case KeyEvent.VK_LEFT:
            if(location.x<0)
                label_1.setLocation(location.x+step, location.y);
            break;
        case KeyEvent.VK_DOWN:
            if(location.y>(frame.getHeight()-label_1.getHeight()))
                label_1.setLocation(location.x, location.y-step);
            break;
        case KeyEvent.VK_UP:
            if(location.y<0)
            {
                label_1.setLocation(location.x, location.y+step);
            }
            break;
            default:break;
        
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值