4.编程显示当前鼠标的位置坐标。 程序代码: package sd4; import java.awt.Color; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JButton; import javax.swing.JFrame; public class LocateMouse extends JFrame { private JButton location; public LocateMouse() { super(\寻找鼠标位置\ location = new JButton(\显示鼠标位置\ location.setSize(20, 10); add(location); location.addMouseMotionListener(new MouseMotionListener() { public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { location.setText(\鼠标在(\ } }); setSize(300, 200); setLocationRelativeTo(null); setVisible(true); location.setBackground(Color.WHITE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { LocateMouse mouse = new LocateMouse(); } } 运行结果贴图: 5. 编写程序,实现使用键盘上的上下左右箭头控制界面上图片的移动。移动到边界时从界面另一侧出现。移动过程中显示另一个图片,停止时恢复原来的图片。
程序代码: package sd5; import java.awt.Color; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class MoveImage extends JFrame { private ImageIcon oneIcon = new ImageIcon(\潘\\\\Desktop\\\\timg.jpg\ private ImageIcon twoIcon = new ImageIcon(\潘\\\\Pictures\\\\Camera Roll\\\\1.jpg\ private JLabel label; JPanel p; public MoveImage() { super(\移动\ setSize(500, 500); setLocationRelativeTo(null); label = new JLabel(oneIcon); p = new JPanel(); setContentPane(p); p.setLayout(null); this.addKeyListener(new PanelListener()); label.setBounds(0, 0, 100, 100); p.add(label); p.setBackground(Color.WHITE); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private class PanelListener implements KeyListener { public void keyPressed(KeyEvent e) { label.setIcon(twoIcon); int x = label.getX(); int y = label.getY(); int w = p.getWidth(); int h = p.getHeight(); if (e.getKeyCode() == KeyEvent.VK_UP) { --y; if (y <= 0) y = h; label.setBounds(x, y, 100, 100); } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { ++y; if (y >= h) y = 0; label.setBounds(x, y, 100, 100); } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { x--; if (x <= 0) x = w; label.setBounds(x, y, 100, 100); } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { x++; if (x >= w)
x = 0; label.setBounds(x, y, 100, 100); } } public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_RIGHT) label.setIcon(oneIcon); } public void keyTyped(KeyEvent e) {} } public static void main(String[] args) { MoveImage m = new MoveImage(); } } 运行结果贴图: 移动前
移动中
移动后 移动末尾