📄 mainframe.java
字号:
}
getactionZhu();
drawPanel.updata();
jCheckBoxMenuItem2.setVisible(false);
jCheckBoxMenuItem1.setVisible(false);
}
}
//---------------------------------------------------------------------------------
//键盘事件处理
public void keyPressed(KeyEvent e) //键盘事件
{
switch(e.getKeyCode())
{
case KeyEvent.VK_LEFT: //光标左键键盘事件的处理
{
if(drawPanel.v1==true) //设定当前控制对象:对柱1控制
{
drawPanel.v1 = !drawPanel.v1;
drawPanel.v3 = !drawPanel.v3;
}
else if(drawPanel.v2==true) //设定当前控制对象:对柱2控制
{
drawPanel.v2 = !drawPanel.v2;
drawPanel.v1 = !drawPanel.v1;
}
else if(drawPanel.v3==true) //设定当前控制对象:对柱3控制
{
drawPanel.v3 = !drawPanel.v3;
drawPanel.v2 = !drawPanel.v2;
}
}
drawPanel.repaint(); //重画
break;
//…………………………………………………………………………………………………
case KeyEvent.VK_RIGHT: //光标右键动作键盘事件的处理
{
if (drawPanel.v1 == true)
{
drawPanel.v1 = !drawPanel.v1;
drawPanel.v2 = !drawPanel.v2;
}
else if (drawPanel.v2 == true)
{
drawPanel.v2 = !drawPanel.v2;
drawPanel.v3 = !drawPanel.v3;
}
else if (drawPanel.v3 == true)
{
drawPanel.v3 = !drawPanel.v3;
drawPanel.v1 = !drawPanel.v1;
}
drawPanel.repaint();
}
break;
//…………………………………………………………………………………………………
case KeyEvent.VK_ENTER: //回车键动作
getactionZhu();
//确定控制对象:选定柱1(最左侧的杆)
if(b1 == true)
{
if(s1.isEmpty() == false) //若柱1有盘子判断
{
//获取柱1最上方的盘子对象
sp1 = (SuperPlate)s1.lastElement();
//若柱2有盘子判断,sp2对象接s2
if(s2.isEmpty() == false) sp2 = (SuperPlate)s2.lastElement();
//若柱3有盘子判断,sp3对象接s3
if(s3.isEmpty() == false) sp3 = (SuperPlate)s3.lastElement();
//柱2为空情况
if(s2.isEmpty())
{
s1.removeElement(sp1); //vector数组中删除元素
sp1.setLocation(200,290); //重新设定盘子位置
s2.addElement(sp1);
press_num++;
//System.out.print("s1");
//break;
}
//柱1最上方盘尺寸比柱2最上方盘尺寸小情况
else if(sp1.plate_width<sp2.plate_width)
{
s1.removeElement(sp1);
num = s2.size();
sp1.setLocation(200,290-num*d);
s2.addElement(sp1);
press_num++;
//System.out.print("s2");
}
//柱3为空情况
else if(s3.isEmpty())
{
s1.removeElement(sp1);
sp1.setLocation(300,290);
s3.addElement(sp1);
press_num++;
//System.out.print("s3");
}
//柱1最上方盘尺寸比柱3最上方盘尺寸小情况
else if(sp1.plate_width<sp3.plate_width)
{
s1.removeElement(sp1);
num = s3.size();
sp1.setLocation(300,290-num*d);
s3.addElement(sp1);
press_num++;
}
}
}
//确定控制对象:选定柱2(中间的杆)
else if(b2 == true)
{
if(s2.isEmpty() == false)
{
sp2 = (SuperPlate)s2.lastElement();
if(s1.isEmpty() == false) sp1 = (SuperPlate)s1.lastElement();
if(s3.isEmpty() == false) sp3 = (SuperPlate)s3.lastElement();
if(s3.isEmpty())
{
s2.removeElement(sp2);
sp2.setLocation(300,290);
s3.addElement(sp2);
press_num++;
}
else if(sp2.plate_width<sp3.plate_width)
{
s2.removeElement(sp2);
num = s3.size();
sp2.setLocation(300,290-num*d);
s3.addElement(sp2);
press_num++;
}
else if(s1.isEmpty())
{
s2.removeElement(sp2);
sp2.setLocation(100,290);
s1.addElement(sp2);
press_num++;
}
else if(sp2.plate_width<sp1.plate_width)
{
s2.removeElement(sp2);
num = s1.size();
sp2.setLocation(100,290-num*d);
s1.addElement(sp2);
press_num++;
}
}
}
//确定控制对象:选定柱3(最右侧的杆)
else if(b3 == true)
{
if(!s3.isEmpty())
{
sp3 = (SuperPlate)s3.lastElement();
if(s2.isEmpty() == false) sp2 = (SuperPlate)s2.lastElement();
if(s1.isEmpty() == false) sp1 = (SuperPlate)s1.lastElement();
if(s1.isEmpty())
{
s3.removeElement(sp3);
sp3.setLocation(100,290);
s1.addElement(sp3);
press_num++;
}
else if(sp3.plate_width<sp1.plate_width)
{
s3.removeElement(sp3);
num = s1.size();
sp3.setLocation(100,290-num*d);
s1.addElement(sp3);
press_num++;
}
else if(s2.isEmpty())
{
s3.removeElement(sp3);
sp3.setLocation(200,290);
s2.addElement(sp3);
press_num++;
}
else if(sp3.plate_width<sp2.plate_width)
{
s3.removeElement(sp3);
num = s2.size();
sp3.setLocation(200,290-num*d);
s2.addElement(sp3);
press_num++;
}
}
}
drawPanel.press_num = press_num;
drawPanel.updata(); //更新drawPanel对象中状态
winNum = s3.size();
drawPanel.getWinNum(winNum);
break;
}
}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){}
//用于获取哪个杆被选中状态
public void getactionZhu()
{
this.b1 = drawPanel.v1;
this.b2 = drawPanel.v2;
this.b3 = drawPanel.v3;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -