⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputhighestnameui.java

📁 俄罗斯方块。适用于初学者学习。想念很好
💻 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 + -