Java by API/java.awt/Cursor
Содержание
Cursor.CROSSHAIR_CURSOR
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class MainClass {
public static void main(String[] args) {
JFrame aWindow = new JFrame();
aWindow.setBounds(200, 200, 200, 200);
aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aWindow.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
aWindow.getContentPane().setBackground(Color.PINK);
aWindow.setVisible(true);
}
}
Cursor.DEFAULT_CURSOR
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Point;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JViewport;
import javax.swing.event.MouseInputAdapter;
public class Main extends JFrame {
public Main() {
super("Grab and drag Demo");
ImageIcon ii = new ImageIcon("largejexpLogo.jpg");
JScrollPane jsp = new JScrollPane(new GrabAndScrollLabel(ii));
getContentPane().add(jsp);
setSize(300, 250);
setVisible(true);
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Main();
}
}
class GrabAndScrollLabel extends JLabel {
public GrabAndScrollLabel(ImageIcon i) {
super(i);
MouseInputAdapter mia = new MouseInputAdapter() {
int xDiff, yDiff;
Container c;
public void mouseDragged(MouseEvent e) {
c = GrabAndScrollLabel.this.getParent();
if (c instanceof JViewport) {
JViewport jv = (JViewport) c;
Point p = jv.getViewPosition();
int newX = p.x - (e.getX() - xDiff);
int newY = p.y - (e.getY() - yDiff);
int maxX = GrabAndScrollLabel.this.getWidth() - jv.getWidth();
int maxY = GrabAndScrollLabel.this.getHeight() - jv.getHeight();
if (newX < 0)
newX = 0;
if (newX > maxX)
newX = maxX;
if (newY < 0)
newY = 0;
if (newY > maxY)
newY = maxY;
jv.setViewPosition(new Point(newX, newY));
}
}
public void mousePressed(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
xDiff = e.getX();
yDiff = e.getY();
}
public void mouseReleased(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
};
addMouseMotionListener(mia);
addMouseListener(mia);
}
}
Cursor: getPredefinedCursor(int type)
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class MainClass {
public static void main(String[] args) {
JFrame aWindow = new JFrame();
aWindow.setBounds(200, 200, 200, 200);
aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aWindow.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
aWindow.getContentPane().setBackground(Color.PINK);
aWindow.setVisible(true);
}
}
Cursor.HAND_CURSOR
import java.awt.Cursor;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class Main extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Main mainForm = new Main();
mainForm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainForm.setSize(250, 250);
Cursor cursor = new Cursor(Cursor.HAND_CURSOR);
mainForm.setCursor(cursor);
mainForm.pack();
mainForm.setVisible(true);
}
});
}
}
Cursor.MOVE_CURSOR
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Point;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JViewport;
import javax.swing.event.MouseInputAdapter;
public class Main extends JFrame {
public Main() {
super("Grab and drag Demo");
ImageIcon ii = new ImageIcon("largejexpLogo.jpg");
JScrollPane jsp = new JScrollPane(new GrabAndScrollLabel(ii));
getContentPane().add(jsp);
setSize(300, 250);
setVisible(true);
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Main();
}
}
class GrabAndScrollLabel extends JLabel {
public GrabAndScrollLabel(ImageIcon i) {
super(i);
MouseInputAdapter mia = new MouseInputAdapter() {
int xDiff, yDiff;
Container c;
public void mouseDragged(MouseEvent e) {
c = GrabAndScrollLabel.this.getParent();
if (c instanceof JViewport) {
JViewport jv = (JViewport) c;
Point p = jv.getViewPosition();
int newX = p.x - (e.getX() - xDiff);
int newY = p.y - (e.getY() - yDiff);
int maxX = GrabAndScrollLabel.this.getWidth() - jv.getWidth();
int maxY = GrabAndScrollLabel.this.getHeight() - jv.getHeight();
if (newX < 0)
newX = 0;
if (newX > maxX)
newX = maxX;
if (newY < 0)
newY = 0;
if (newY > maxY)
newY = maxY;
jv.setViewPosition(new Point(newX, newY));
}
}
public void mousePressed(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
xDiff = e.getX();
yDiff = e.getY();
}
public void mouseReleased(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
};
addMouseMotionListener(mia);
addMouseListener(mia);
}
}
Cursor.NE_RESIZE_CURSOR
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Main implements Runnable, ActionListener {
private boolean animate;
private Cursor[] cursors = new Cursor[] { Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR),
Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR) };
private JFrame frame;
public Main(JFrame frame) {
animate = false;
this.frame = frame;
}
public void run() {
int count = 0;
while (animate) {
try {
Thread.currentThread().sleep(200);
} catch (Exception ex) {
}
frame.setCursor(cursors[count % cursors.length]);
count++;
}
frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
public void actionPerformed(ActionEvent evt) {
JButton button = (JButton) evt.getSource();
if (animate) {
button.setText("Start Animation");
animate = false;
} else {
animate = true;
button.setText("Stop Animation");
new Thread(this).start();
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
JButton button = new JButton("Start Animation");
button.addActionListener(new Main(frame));
frame.getContentPane().add(button);
frame.setSize(300, 300);
frame.setVisible(true);
}
public static void p(String str) {
System.out.println(str);
}
}