📄 splitbar.java
字号:
package edu.odu.cs.zeil.AlgAE.gui;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import edu.odu.cs.zeil.AlgAE.Debug;
import edu.odu.cs.zeil.AlgAE.gui.SplitLayout;
public class SplitBar extends Canvas
{
private boolean isHighlighted;
private Dimension minSize;
private static final int barThickness = 6;
private SplitLayout layoutMgr;
private Point startDrag;
public SplitBar (SplitLayout layoutManager)
{
isHighlighted = false;
minSize = new Dimension(barThickness, barThickness);
startDrag = null;
layoutMgr = layoutManager;
addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
isHighlighted = true;
repaint();
}
public void mouseExited(MouseEvent e) {
isHighlighted = false;
repaint();
}
public void mousePressed(MouseEvent e) {
Debug.show (Debug.splitters, "mouse button pressed " + e.getX() + " " + e.getY());
startDrag = new Point (e.getX(), e.getY());
}
public void mouseReleased(MouseEvent e) {
Debug.show (Debug.splitters, "mouse button released " + e.getX() + " " + e.getY());
if (startDrag != null) {
Dimension delta = new Dimension
(e.getX() - startDrag.x,
e.getY() - startDrag.y);
if (Math.abs(delta.width) + Math.abs(delta.height) > 4) {
layoutMgr.alterSize (delta);
}
startDrag = null;
}
}
} );
}
public Dimension getPreferredSize () {
return minSize;
}
public Dimension getMinimumSize () {
return minSize;
}
public void paint (Graphics g)
{
g.setColor ((isHighlighted) ? Color.blue : Color.lightGray);
Dimension size = SplitBar.this.getSize();
g.fill3DRect (1, 1, size.width-2, size.height-2, true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -