📄 inputhighestnameui.java
字号:
package xn.tetris;
import java.io.IOException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
/**
* 若出现最高分,弹出填写最高分玩家姓名界面
* */
public class InputHighestNameUI {
private Main main;
private Game game;
private Shell myShell;
private Label lbCongratulation;
private Label lbName;
private Text txtName;
private Button btOk;
private SaveFileIO io;
public InputHighestNameUI(Main main, Game game){
this.main = main;
this.game = game;
io = new SaveFileIO();
init();
}
public InputHighestNameUI(){
init();
}
private void init(){
myShell = new Shell(main.display, SWT.MOD2 | SWT.SHELL_TRIM & ~SWT.RESIZE &
~SWT.MAX & ~SWT.MIN & ~SWT.CLOSE);
myShell.setText("Highest Score Creator");
int xCenter = myShell.getSize().x / 2;
int yCenter = myShell.getSize().y / 2;
myShell.setLocation(xCenter, yCenter);
GridLayout gdLayout = new GridLayout(2, true);
myShell.setLayout(gdLayout);
lbCongratulation = new Label(myShell, SWT.NONE);
lbCongratulation.setText("Congratulation! you got the highest score!");
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
gd.horizontalSpan = 2;
gd.verticalIndent = 10;
lbCongratulation.setLayoutData(gd);
lbName = new Label(myShell, SWT.NONE);
lbName.setText("Please input your name: " );
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.verticalIndent = 10;
lbName.setLayoutData(gd);
txtName = new Text(myShell, SWT.BORDER);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.verticalIndent = 10;
txtName.setLayoutData(gd);
btOk = new Button(myShell, SWT.PUSH);
btOk.setText(" OK ");
btOk.setEnabled(false);
gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
gd.horizontalSpan = 2;
gd.verticalIndent = 15;
btOk.setLayoutData(gd);
addListeners();
myShell.pack();
myShell.open();
retainShell();
}
private void retainShell(){
while(!myShell.isDisposed()){
if(!main.display.readAndDispatch()){
main.display.sleep();
}
}
main.display.dispose();
}
private void addListeners(){
txtName.addModifyListener(new TextModify());
btOk.addSelectionListener(new BtOkAdapter());
}
class TextModify implements ModifyListener{
public void modifyText(ModifyEvent e){
if(!"".equals(txtName.getText()))
btOk.setEnabled(true);
else
btOk.setEnabled(false);
}
}
class BtOkAdapter extends SelectionAdapter{
public void widgetSelected(SelectionEvent arg0) {
// TODO Auto-generated method stub
main.setHighestScore(game.getHighestScore());//将最高分,最高等级,姓名显示
main.setHighestLevel(game.getHighestLevel());
main.setCreatorName(txtName.getText());
try {
io.writeToFile(txtName.getText(), //将最高分,最高等级,姓名写入文件
game.getHighestScore(),
game.getHighestLevel());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myShell.setVisible(false);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -