这个按钮的功能就是实现,点击它窗口就最大化,再点击它窗口就还原。这在这两个状态切换。
但我的 java程序一开始运行,点击JLabel最大化按钮,不起作用,要先点击了最小化后,再点最大化才起作用。
代码如下:请各位大神赐教
/**
* 最大化按钮
*/
public void maximizeButton(){
JLabel maxButton = new JLabel();
maxButton.setBounds(220,474,28, 28);
maxButton.setIcon(new ImageIcon(default_max));
frameBackground.add(maxButton);
maxButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
maxButton.setIcon(new ImageIcon(hover_max));
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
maxButton.setIcon(new ImageIcon(default_max));
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if(getFrameState() == 22){
restore();
}else if(getFrameState() == 33){
max();
}else if(getFrameState() == 44){
max();
}
}
});
}
/**
* 获取窗口状态
*/
public int getFrameState(){
jFrame.addWindowStateListener(new WindowStateListener() {
@Override
public void windowStateChanged(WindowEvent state) {
// TODO Auto-generated method stub
if(state.getOldState() == JFrame.NORMAL) {
jFrameState = 22;//旧窗口正常
}else if(state.getNewState() == JFrame.NORMAL) {
jFrameState = 33;//新窗口恢复到初始状态
}else if(state.getNewState() == JFrame.MAXIMIZED_BOTH) {
jFrameState = 44;//新窗口最大化
}
}
});
return jFrameState;
}