第六章:控制台图形界面

一、简单指令


//Java的选项面板
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

public class DialogueDemo {
	public static void main(String[] args) {		
//		JOptionPane.showMessageDialog(parentComponent, message, title, messageType, icon);		
//		参数1.对话框的父窗体对象
//		参数2.对话框的提示信息
//		参数3.对话框的标题信息
//		参数4.对话框的消息类型(主信息前的图标会改变) JOptionPane.---
//		参数5.图像,针对参数4的自定义图像			   new ImageIcon("images/-文件名.jpg-")
		JOptionPane.showMessageDialog(null, "提示信息", "标题信息", JOptionPane.WARNING_MESSAGE, new ImageIcon("images/网易云.jpg"));
	


//		JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType, icon);
		JOptionPane.showConfirmDialog(null, "Confirm", "判断", 0, 0, new ImageIcon("images/头1.Jpg"));
		
		
//		JOptionPane.showInputDialog(parentComponent, message, title, messageType, icon, selectionValues, initialSelectionValue)
//		参数6.下拉选项,可以用字符串输组
//		参数7.在没有选项6的情况下可以出现默认提示
		JOptionPane.showInputDialog(null, "网易云", "网易云", 0,new ImageIcon("images/网易云.jpg"), new String [] {"1.网易云时刻","2.12点到了","3.年轻人绝对不网抑云"},null);
	}
}

 

二、后宫选妃(实例)

知识点:
1.    JOptionPane.showMessageDialog(parentComponent, message, title, messageType, icon);
2.    JOptionPane.showInputDialog(parentComponent, message, title, messageType, icon, selectionValues, initialSelectionValue);
3.    JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType, icon)
4.    大循环结构用while
5.    每次的选择结果用switch
6.    比较字符串是否相等,用于查找嫔妃是否已拥有
      ×××.equals()
      ×××.compareTo() == 0
7.    游戏开始前要判断选择取消就continue
8.    图片插入 new ImageIcon("images/×××.jpg")
9.    图形界面不支持/t
import java.util.Scanner;

import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

public class ConcubineDemo {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		//新加妃子数组
		String[] NewNameArray = {"王昭君","西施","貂蝉","杨玉环"};
		//妃子数组个数
		int NewCount = 4 ;
		//妃子数组
		String[] ConcubineNameArray = {"甄嬛","安陵容","沈眉庄","年世兰","","","",""};
		//对应妃子的好感度
		int[] loves = new int[10];
		//妃子的显示数量为4
		int ConcubineCount = 4;
		//默认每个妃嫔好感度值为100
		for(int i = 0 ;i < ConcubineCount ; i++) {
			loves [i] = 100;
		}
		//游戏运行天数
		int GameDays = 1;
		
		//游戏主界面
		
		JOptionPane.showMessageDialog(null, null, "后宫选妃", 0, new ImageIcon("images/甄嬛后宫封面图.jpg"));

		while(GameDays <= 10) {
//			System.out.println("游戏进行到第"+GameDays+"天");
//			System.out.println("1.都不喜欢,朕要纳妃!\t\t增加角色数量");
//			System.out.println("2.深得朕意,马上宠幸!\t\t增加角色好感度");
//			System.out.println("3.朕意已决,打入冷宫!\t\t减少角色数量");
//			System.out.print("陛下请选择:");
			
			String [] strMenu = {"1.都不喜欢,朕要纳妃!","2.深得朕意,马上宠幸!","3.朕意已决,打入冷宫!"};
			Object objresult = JOptionPane.showInputDialog(null, strMenu, "游戏进行到第"+GameDays+"天", 0, new ImageIcon("images/皇帝思考.jpg"), new String []{"1","2","3"}, 0);
			int temp = -1 ;
    		String name = new String();		
			int choice = Integer.parseInt(objresult.toString());
			
			switch (choice) {
			
			
			case 1:
//				System.out.print("想要纳妃的名字:");
				objresult = JOptionPane.showInputDialog(null, "请选择秀女", "后宫选妃", 0, new ImageIcon("images/皇上瞧瞧选啥啊.jpg"), NewNameArray,null);
				if(objresult == null) {
					continue;
				}
				String newName = objresult.toString();
				JOptionPane.showMessageDialog(null, objresult.toString(), "选中的嫔妃", 0, new ImageIcon("images/"+objresult.toString()+".jpg"));
				for(int i = 0; i < ConcubineCount ; i++) {
					if(newName.equals(ConcubineNameArray[i])) {
						temp = i;
						JOptionPane.showMessageDialog(null, "我已经是你的人了", "皇上果然不记得我了", 0 ,new ImageIcon("images/"+objresult.toString()+".jpg"));
						temp = 1;
						break;
					}
				}
				if(ConcubineCount == ConcubineNameArray.length) {
					JOptionPane.showMessageDialog(null, "纳妃失败!后宫嫔妃太多养不起了!", objresult.toString()+"纳入失败", 0, new ImageIcon("images/人多.jpg"));
					break;
				}else if(temp == 1) {
					continue;
				}
				else {	
				
					ConcubineNameArray[ConcubineCount] = newName;
				
					loves[ConcubineCount] = 100 ;
					
					for(int i = 0 ; i < ConcubineCount ; i++) {
						loves[i] -= 10 ;
					}
					ConcubineCount++;
				}
				break;
			
			
			case 2:
				objresult = JOptionPane.showInputDialog(null, "皇上今天你想宠幸谁啊?", "宠幸我宠幸我", 0, new ImageIcon("images/等待宠幸.jpg"), ConcubineNameArray, null);
				
				if(objresult == null) {
					continue;
				}
				name = objresult.toString();
				
				for(int i = 0 ; i < ConcubineCount ; i++) {
					if(name.compareTo(ConcubineNameArray[i]) == 0) {
						temp = i;
						break;
					}
				}
				if(temp == -1) {
					System.out.println(name+"不在皇上的后宫里,宠幸失败!");
					break;
				}
				
				loves[temp] += 20 ;
				int B = 0;
				for(int j = 0 ;j < ConcubineCount ; j++) {
					if(j != temp) {
						loves[j] -=10 ;
					}
					if(loves[j] < 60) {
						B++;
					}
				}
				if(B >= 3) {
				JOptionPane.showMessageDialog(null, B+"妃夺权,皇帝驾崩,游戏结束!", "隐藏结局----"+B+"妃暴乱", 0, new ImageIcon("images/皇帝死.jpg"));
				System.exit(0);
				}
				JOptionPane.showMessageDialog(null, "宠幸"+ConcubineNameArray[temp]+",好感度+20", "宠幸成功", 0, new ImageIcon("images/受赏.jpg"));
				break;	
				
				
			
			
			
			case 3:
				objresult = JOptionPane.showInputDialog(null, "哪位妃子惹皇上生气了,贬入冷宫:", "贬入冷宫", 0, new ImageIcon("images/皇帝生气.png"), ConcubineNameArray, null);
				if(objresult == null) {
					continue;
				}
				for(int i = 0; i < ConcubineCount; i++) {
					if(objresult.toString().equals(ConcubineNameArray[i])) {
						temp = i;
					}
				}
				
				for(int i = temp ; i < ConcubineCount ; i++) {
					ConcubineNameArray[i] = ConcubineNameArray[i + 1];
					loves[i] = loves[i + 1];	
					}
				ConcubineCount--;
				JOptionPane.showMessageDialog(null, "", objresult+"已被贬入冷宫", 0, new ImageIcon("images/冷宫.jpg"));
				break;
				
			default:
				System.out.println("必须输入1-3之间做出选择");
				continue;
			}
			//每日结算
			String value = "没羞没臊的生活又过了一天,后宫的情况如下:\n嫔妃      好感度\n";
			
			for(int i = 0 ; i < ConcubineCount ; i++) {
				value += String.format("%s      %d\n", ConcubineNameArray[i],loves[i]);
			}
			JOptionPane.showMessageDialog(null, value, "看看今天的爱妃都咋样了", 0, new ImageIcon("images/最后.jpg"));
			
//			System.out.println();
//			System.out.println("姓名\t\t好感度");
//			for(int i = 0 ;i < ConcubineCount ; i++) {
//				System.out.println(ConcubineNameArray[i]+"\t\t"+loves[i]);
//			}
//			System.out.println();
//			System.out.println("--------------------------------------------------");
//			System.out.println();
			
			
			GameDays++;
		}
				
	}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Linux中,可以通过以下几种方式进行图形界面切换: 1. 使用Ctrl+Alt+F1~F6键切换到不同的虚拟终端,其中F1~F6分别对应着6个不同的终端。在终端中输入用户名和密码后,可以通过命令startx启动图形界面。 2. 在图形界面中使用Ctrl+Alt+F1~F6键切换到不同的虚拟终端。在终端中输入用户名和密码后,可以通过命令startx重新启动图形界面。 3. 在图形界面中使用Alt+Tab键切换到其他已经打开的程序窗口。 4. 在图形界面中使用Ctrl+Alt+L键锁定屏幕,此时需要输入密码才能解锁。 5. 在图形界面中使用Ctrl+Alt+Delete键强制退出当前程序或重启系统。 以上是常用的Linux图形界面切换方式,可以根据自己的需要选择合适的方式。 ### 回答2: Linux操作系统提供了多种方法切换图形界面。 1. Ctrl+Alt+F1~F6:在Linux中,我们可以通过按下Ctrl+Alt+F1~F6键来切换到不同的文本终端。每个文本终端都运行着一个Linux shell,用户可以在其中执行命令。第一个终端通常用于登录,而其他终端可以用于运行命令或查看系统状态。这些终端一般没有图形界面,只是提供了一个纯文本界面。 2. Startx命令:如果我们在Linux中已经登录并启动了一个文本终端,可以通过运行startx命令来启动图形界面。Startx命令会启动一个X Window系统,然后加载用户默认的图形界面环境。通过运行startx,我们可以从文本终端切换到图形界面。 3. Display Manager(显示管理器):在Linux发行版中,通常会安装一个显示管理器,比如GDM(GNOME显示管理器)或者LightDM。当我们启动计算机时,显示管理器会自动启动一个图形界面,供我们登录使用。我们可以在登录屏幕上切换图形界面,选择不同的用户环境。 4. Ctrl+Alt+Backspace(Xkill命令):有时,我们可能会遇到无法通过其他方式切换图形界面的情况,比如图形界面崩溃。在这种情况下,我们可以按下Ctrl+Alt+Backspace键,这会强制关闭当前的X服务器,并重新启动一个新的图形界面。 总之,Linux提供了多种方法来切换图形界面,用户可以根据自己的需要和情况选择相应的方式。无论是通过文本终端切换到图形界面,还是通过显示管理器登录不同的环境,这些方法都让我们更加灵活地使用Linux操作系统。 ### 回答3: 在Linux操作系统中,可以通过图形界面切换工具来进行图形界面的切换。常见的切换工具有gnome-session和startx。 gnome-session是GNOME桌面环境默认的会话管理器。它允许用户登录到GNOME桌面环境,并在GNOME的登录界面中选择不同的会话类型和窗口管理器。通过切换用户或注销操作,可以方便地切换到其他已经配置好的桌面环境。 startx是一个命令,用于启动X Window系统的服务。在终端中输入startx后,系统将启动X Window系统并加载默认的窗口管理器。用户可以通过修改对应配置文件来选择不同的窗口管理器,例如~/.xinitrc文件可以指定启动的窗口管理器。 除了上述两种方式,还可以通过使用虚拟控制台(Virtual Console)来进行图形界面的切换。在Linux系统中,通常有六个虚拟控制台,用户可以使用Ctrl + Alt + F1至F6快捷键来切换不同的虚拟控制台。其中,Ctrl + Alt + F7是默认的图形界面控制台。 总结来说,Linux图形界面的切换可以通过gnome-session、startx或虚拟控制台来实现。用户可以根据自己的需求和喜好来选择合适的方式进行切换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我也不想啊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值