📄 subordinatebutton.java
字号:
/**
* [SubordinateButton.java] 主从按钮
*
* 创建日期:(2003-9-4)
* @author:ONE_Fox
*/
package subbutton;
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.border.Border;
import javax.swing.border.BevelBorder;
import javax.swing.border.EmptyBorder;
public class SubordinateButton extends JPanel {
/**
* 从属按钮相对与主按钮的位置
*
* int UP = 1;
* int DOWN = 2;
* int LEFT = 3;
* int RIGHT = 4;
*/
public static final int UP = 1;
public static final int DOWN = 2;
public static final int LEFT = 3;
public static final int RIGHT = 4;
private int position = RIGHT; //默认从按钮在右边
/**
* 按钮三态(普通、鼠标进入、鼠标按下)默认配置
*
* usual 默认普通状态边框
* mouseIn 默认鼠标进入边框
* mousePress 默认鼠标按下边框
*/
public static Border usual = new EmptyBorder(2, 2, 2, 2);
public static Border mouseIn = new ThinBevelBorder(BevelBorder.RAISED);
public static Border mousePress = new ThinBevelBorder(BevelBorder.LOWERED);
//默认鼠标事件--------------//
private MouseAdapter listener = null;
/**
* master 主按钮
* slave 从按钮
*/
public JButton master = null; //主按钮
public JButton slave = null; //从按钮
//------------------------------------------------------//
/**
* 构造方法 1:
* @param master javax.swing.JButton 主按钮
* @param slave javax.swing.JButton 从按钮
*/
public SubordinateButton(JButton master, JButton slave) {
this.master = master;
this.slave = slave;
listener = new DefaultMouseEvent(master ,slave);
makeButton();
}
/**
* 构造方法 2:
* @param master javax.swing.JButton 主按钮
* @param slave javax.swing.JButton 从按钮
* @param position int 从属按钮位置
*/
public SubordinateButton(JButton master, JButton slave, int position) {
this(master, slave);
if(position >= 1 && position <= 4)
this.position = position;
}
//------------------------------------------------------//
/**
* 方法:按钮制作
*/
private void makeButton() {
setLayout(new BorderLayout());
String pos = position == 1? BorderLayout.NORTH:
(position == 2? BorderLayout.SOUTH:
(position == 3? BorderLayout.WEST:BorderLayout.EAST));
add(master, BorderLayout.CENTER);
add(slave, pos);
setUsualBorder(usual);
setListener(listener);
}
/**
* 方法:设置普通状态边框
*/
public void setUsualBorder(Border usual) {
this.usual = usual;
master.setBorder(usual);
slave.setBorder(usual);
}
/**
* 方法:设置鼠标进入边框
*/
public void setMouseInBorder(Border mouseIn) {
this.mouseIn = mouseIn;
}
/**
* 方法:设置鼠标按下边框
*/
public void setMousePressBorder(Border mousePress) {
this.mousePress = mousePress;
}
/**
* 方法:设置鼠标监听
*/
public void setListener(MouseAdapter listener) {
this.listener = listener;
master.removeMouseListener(listener);
slave.removeMouseListener(listener);
master.addMouseListener(listener);
slave.addMouseListener(listener);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -