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

📄 test.java

📁 一个课程设计
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Test extends JPanel {   //类申明
   JFrame frame;//建立一个窗口
	int n=1;
//从第二次开始计算按“下一题”按钮的次数,用于按次序刷新面板上标签
	int value;  //用来计算测验的最后分数
	int x,y,z;  //分别用来计算A,B,C选项的个数
 public Test(JFrame frame) {   //构造函数,参数为窗口名
     this.frame = frame;
      JLabel title1,title2;
	 JPanel panel=new JPanel(new GridLayout(2,1));
//设置布局管理器,有利于将两个标签排成大小一样的
	 JPanel choicePanel = createSimpleDialogBox();
      title1 = new JLabel("<html><font color=blue>你和他有可能在一起吗?你们会突破友情的界限吗,你和他是只有一点点还是只差一点点还是不可能呢?</font></html>");
 title2 = new JLabel("<html><font color=blue>不要错过我们这个测试!快来看看他值不值得你等待!</font></html>");                              
 //将标签分成两个,利于排版
    title1.setFont(new Font("宋体", Font.BOLD, 16));
	 title2.setFont(new Font("宋体", Font.BOLD, 16));   //设置标签的大小和字体
	 panel.add(title1);
	 panel.add(title2);     //将两个标签加入到一个面板
	choicePanel.setBorder(BorderFactory.createEmptyBorder(20,20,5,20));
     setLayout(new BorderLayout());
     add(panel, BorderLayout.NORTH);  
	  add(choicePanel, BorderLayout.CENTER);
    }
 private JPanel createSimpleDialogBox() {
        final int numButtons = 3;     //radioButton的个数
   JRadioButton[] radioButtons = new JRadioButton[numButtons];
 final JLabel label =new JLabel("要不要开始测试?");
label.setForeground(new Color(200, 120, 150));
label.setFont(new Font("宋体", Font.BOLD, 15));
final ButtonGroup group = new ButtonGroup();
final JLabel l1=new JLabel("        YES!");
final JLabel l2=new JLabel("        NO!");
final JLabel l3=new JLabel("        WAIT FOR A MOMENT!");
    //用三个标签显示三个选项的内容
	l1.setFont(new Font("宋体", Font.BOLD, 14));
	l2.setFont(new Font("宋体", Font.BOLD, 14));
	l3.setFont(new Font("宋体", Font.BOLD, 14));
     //设置标签的字体,大小
 final JButton button = new JButton("确定");
final JButton b1=new JButton("下一题");
	 b1.setEnabled(false);    //一开始将刷新叶面的按钮禁用
    radioButtons[0] = new JRadioButton();
	 radioButtons[0].setBackground(new Color(120, 180, 100));
    radioButtons[0].add(l1);   //将l1标签加到第一个radioButton上
    radioButtons[0].setActionCommand("A");
radioButtons[1] = new JRadioButton();
radioButtons[1].add(l2);   //将l2标签加到第二个radioButton上
	 radioButtons[1].setBackground(new Color(120, 180, 100));
    radioButtons[1].setActionCommand("B");
    radioButtons[2] = new JRadioButton();
	 radioButtons[2].add(l3);   //将l3标签加到第三个radioButton上
	 radioButtons[2].setBackground(new Color(120, 180, 100));
             //将三个radioButton都设置成同一种颜色
radioButtons[2].setActionCommand("C");
     //设置三个radioButton的选项信息分别为“A”,“B”,“C”,利于以后提取选项信息
    for (int i = 0; i < numButtons; i++) {
group.add(radioButtons[i]);    
//将三个radioButton加到同一个ButtonGroup里,有利于管理
        }
	radioButtons[0].setSelected(true);   //将初始选项定在第一个radioButton上
button.addActionListener(new ActionListener() {  //“确定”键的事件监听器
public void actionPerformed(ActionEvent e) {
	 String command1 = group.getSelection().getActionCommand();
              //提取radioButton的选项信息
if (command1 == "A") 
{   //若选项为第一个radioButton时,直接进入测试
label.setText("1.第一次见面的时候:");
	l1.setText("     我们擦肩而过,他假装没看到我.");
	l2.setText("     他向我要电话号码,并把他的给了我.");
	l3.setText("     我很肯定他在不停地看我.");	
b1.setEnabled(true);      
button.setEnabled(false);    //将“确定”键禁用,“下一题”键启用
b1.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
		 ++n;   //计算“下一题”键按键次数
switch(n)  {
case 2:
		label.setText(n+".当你没和你的朋友们一起出去玩时,他们会问他你在哪吗?");
	        l1.setText("     他甚至都不能确定我在哪.");
	        l2.setText("     不会,他很害羞.");
	        l3.setText("     当然啦,他们都是好朋友.");	
			break;
	 case 3:
		  label.setText(n+".如果你在面前,有另外一个女孩子在后面对他眉来眼去?");
	        l1.setText("     他们俩这样子已经不止一次了.");
	        l2.setText("     如果我看不到,他就会回应她.");
	        l3.setText("     他会视而不见,走上前和我说话.");
	      break;
	case 4:
		  label.setText(n+".如果你和异性聊了很久");
	        l1.setText("     他会拉我到一旁详细地问我聊天的内容 .");
	        l2.setText("     过后他表现得很奇怪不与我说话.");
	        l3.setText("     他会加入我们的谈话,并向暗示我们是认识的.");
	      break;
	case 5:
		  label.setText(n+".他记得你的生日吗?");
	        l1.setText("     不.我们还不是太熟.");
	        l2.setText("     他从来不理会这类事情.");
	        l3.setText("     当然啦,他总是第一个打电话祝贺的人.");
	      break;
	case 6:
		  label.setText(n+".假设你们一群人去海滩玩,但是你忽然肚子疼不能游泳,");
	        l1.setText("     他与别人下海游泳.");
	        l2.setText("     他与别人游一会儿,然后上岸陪我.");
	        l3.setText("     他会呆在我身边,直到我感觉好后再一起游泳.");
	      break;
	case 7:
		  label.setText(n+".你要去看他打一场篮球赛,");
	        l1.setText("    他只是注意观众席上穿得最漂亮的那个女孩子。.");
	        l2.setText("    他专注于赛事,并没看我,但是赛后他回问我打得怎样.");
	        l3.setText("     他每进一个球都会往我这边看.");
	         break;
	case 8:
		  label.setText(n+".他对你说了一些话让你很生气,");
	        l1.setText("    有这种情况吗,那可能是我太敏感了.");
	        l2.setText("    直到我气消之前都不敢和我说话.");
	        l3.setText("    立刻向我道歉,希望我能不计较.");
			break;
	case 9:
		  label.setText(n+".我喜欢收集明星的纪念品,把它们摆放在书桌上,他看到后,");
	        l1.setText("    嘲笑了我一个月,说我幼稚.");
	        l2.setText("    很高兴,因为我们有一样的爱好,他还补充说他比较喜欢布莱得彼特.");
	        l3.setText("     很惊讶,用羡慕的口吻夸奖我漂亮的书桌.");
	       break;
	case 10:
		  label.setText(n+".你们一群朋友去看电影,他出去买爆米花,");
	        l1.setText("    没给我带什么,因为他不能拿太多东西.");
	        l2.setText("    他问所有人要什么,但是先问我第一.");
	        l3.setText("    回来的时候带了个大号的与我一起分享.");
	      break;
      //以上显示每个题目内容
	  }
	String command2 = group.getSelection().getActionCommand();
	 if(command2 == "A") {
				++x;
			}
			else if(command2 == "B") {
				++y;
			}
			else if(command2 == "C") {
				++z;
			}    //计下三个raduiButton分别选取次数
			if(n==11){
				b1.setEnabled(false);    
 //10个题目做完,再显示结果,之后将“下一题”键禁用
			value=y+3*z;   //用value计测试总分
			if(value<=6){
				JOptionPane.showMessageDialog(null, "只是朋友\n"+"至少在目前为止,他对你的感觉仍然停留在朋友上.\n"+"如果他能多了解你,可能他会注意到你的可爱之处,这的确是有点困难的.",
									"你的测试分数为:" + value,
JOptionPane.INFORMATION_MESSAGE);}
else if(value<15){
				JOptionPane.showMessageDialog(null, "前途明朗\n"+"他是喜欢你的,但是他不能确定你是否也有一样的感觉,\n"+"因为你并没有对他明确地表示过,他只能是继续出现在你身边.\n"+"虽然他现在可能没有计划认真地与你交往,但是连他自己也不清楚目前的这种状况要到什么时候才能结束.",
								"你的测试分数为:" + value,
JOptionPane.INFORMATION_MESSAGE);}
else if(value<=30){
				JOptionPane.showMessageDialog(null, "这就是爱\n"+"他对你已经完全着迷,只差没有拜倒在你的石榴裙下了.\n"+"他时刻准备为你效劳,分分秒秒关心着你.你们俩还不是男女朋友吗?\n"+"看来只是迟早问题而已了,他在等着你点头同意呐!你喜欢他吗?那就要快点说哦,呵呵.\n"+"如果不喜欢,那就早点说明白,免得他越险越深哦.引起误会可不好了.",
									 "你的测试分数为:" + value,
JOptionPane.INFORMATION_MESSAGE);}

	}     //用对话框的形式显示测试结果
	}
});
} else if (command1 =="B") {
					JOptionPane.showMessageDialog(frame,
                          "真的不想知道吗?别犹豫了,快测试吧!");
    //在最开始没选择第二个radioButton时显示如上对话框
                } else if (command1 == "C") {
                    JOptionPane.showMessageDialog(frame,
                                "好!记得呆会儿回来!");
    //在最开始没选择第三个radioButton时显示如上对话框
	            } 
               }
        });
return createPane(label,
              radioButtons, 
              button, 
		        b1);      //调用createPane函数显示题目面板
    }
private JPanel createPane(JLabel description,
                      JRadioButton[] radioButtons,
                      JButton showButton,
		               JButton nextButton) {
    int numChoices = radioButtons.length;
    JPanel box = new JPanel();
    box.setLayout(new BoxLayout(box, BoxLayout.Y_AXIS));
box.add(description);      // 将显示题目内容的标签加入一个面板
for (int i = 0; i < numChoices; i++) {
         box.add(radioButtons[i]);    //将各个radioButton加入到上面那个面板
        }
JPanel pane = new JPanel();
      pane.setLayout(new BorderLayout());     //设置一个测试面板
      pane.add(box, BorderLayout.NORTH);  //将开始那个面板加入当前面板
      pane.add(showButton, BorderLayout.CENTER);  
      pane.add(nextButton, BorderLayout.SOUTH);  //将两个按钮加入当前面板
       return pane;    // 函数返回当前面板
    }
 public static void main(String[] args) {      //main函数
        JFrame frame = new JFrame("他真的爱你吗?");
//产生一个窗口名为”他真的爱你吗?“的实例
 Container contentPane = frame.getContentPane();
        contentPane.setLayout(new GridLayout(1,1));
        contentPane.add(new Test(frame));
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  frame.pack();
  frame.setVisible(true);
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -