📄 selectbutton.java
字号:
/**
*
*/
package flow.graph.gui.tools;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.geom.Point2D;
import java.util.Enumeration;
import javax.swing.ButtonGroup;
import javax.swing.DefaultButtonModel;
import javax.swing.Icon;
/**
* @author Administrator
*
*/
public class SelectButton extends BaseButton{
private boolean selected = false;
public SelectButton(Icon icon){
this("", icon);
}
public SelectButton(String value){
this(value, null);
}
public void actionPerformed(Point2D point){
//System.out.println("actionPerformed...");
}
public Object performedAction(Point2D point){
return null;
}
private void refreshGroup(){
//SelectButton sb = (SelectButton)e.getSource();
//refresh other buttons to normal status
DefaultButtonModel model = (DefaultButtonModel)getModel();
if(model.getGroup() != null){
JButtonGroup group = (JButtonGroup)model.getGroup();
Enumeration buttons = group.getElements();
while(buttons.hasMoreElements()){
SelectButton select = (SelectButton)buttons.nextElement();
//System.out.println("1------"+selected);
if(!select.equals(this)){
//System.out.println("2------"+selected);
select.setSelected(false);
/*
//select.fireStateChanged();
MouseListener[] m = select.getMouseListeners();
for(int i=0;i<m.length;i++){
if(m[i].toString().indexOf("SelectButton") > 0){
//m[i].mouseReleased(e);
m[i].mouseExited(e);
}
}
*/
select.setBorder(null);
}
else{
//System.out.println("3------"+selected);
group.setSelected(this, selected);
}
}
}
}
public void doClick(Point2D point){
//refresh other buttons to normal status
DefaultButtonModel model = (DefaultButtonModel)getModel();
if(model.getGroup() != null){
JButtonGroup group = (JButtonGroup)model.getGroup();
Enumeration buttons = group.getElements();
while(buttons.hasMoreElements()){
SelectButton select = (SelectButton)buttons.nextElement();
if(!select.equals(this)){
select.setSelected(false);
select.setBorder(null);
/*
//select.fireStateChanged();
MouseListener[] m = select.getMouseListeners();
for(int i=0;i<m.length;i++){
if(m[i].toString().indexOf("SelectButton") > 0){
//m[i].mouseReleased(e);
//m[i].mouseExited(e);
}
}*/
}
else{
if(point != null)
actionPerformed(point);
select.setSelected(true);
group.setSelected(this, true);
//select.fireStateChanged();
/*
MouseListener[] m = select.getMouseListeners();
for(int i=0;i<m.length;i++){
if(m[i].toString().indexOf("SelectButton") > 0){
//m[i].mouseReleased(e);
//m[i].mouseClicked(e);
}
}*/
select.setBorder(pressStatus);
}
}
//updateUI();
}
}
public void unSelect(){
setSelected(false);
setBorder(null);
}
public SelectButton(String name, Icon icon){
super(name, icon);
addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
//System.out.println("Click..."+isSelected());
selected = !isSelected();
refreshGroup();
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
//System.out.println("Pressed..."+isSelected());
if(isEnabled() == true){
setBorder(pressStatus);
}
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
//System.out.println("Released..."+isSelected());
if(isEnabled() == true){
SelectButton sb = (SelectButton)e.getSource();
if(sb.contains(e.getPoint())){
if(selected == false){
setBorder(pressStatus);
}
else{
setBorder(enterStatus);
}
}
}
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
//System.out.println("Entered..."+isSelected());
if(isEnabled() == true){
if(selected == false)
setBorder(enterStatus);
else
setBorder(pressStatus);
}
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
//System.out.println("Exited..."+isSelected());
if(isEnabled() == true){
if(selected == true)
setBorder(pressStatus);
else
setBorder(null);
}
}}
);
}
public void setSelected(boolean flag){
selected = flag;
//updateUI();
}
public boolean isSelected(){
return selected;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -