weixin_43960043
麦高芬�
采纳率0%
2018-12-04 15:09

Java如何通过匿名内部类给外部变量赋值

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.lang.Math;
public class GuessWindow extends JFrame //implements ActionListener
{

GuessWindow()
{ 
  JFrame win=new JFrame("猜数字小游戏"); 
  setLocation(200, 200);
    setSize(250, 250); 
    win.validate();
  win.setVisible(true);
  GridLayout grid = new GridLayout(2,2,25,15);
  JPanel p = new JPanel(grid);
  p.add(new JLabel("获取[1,10)之间的随机数:"));
  JButton button =new JButton("得到一个随机数");
  p.add(button);
  p.add(new JLabel("请输入您的猜测:"));
  JTextField guess = new JTextField(20);
  p.add(guess);
  Box bb,p1,p2;
  bb=Box.createVerticalBox();
  p1=Box.createHorizontalBox();
  bb.add(p);
  p1.add(new JLabel("单击确定按钮"));
  p1.add(Box.createHorizontalStrut(10));
  JButton queding =new JButton("确定");
  p1.add(queding);
  bb.add(p1);
  win.add(bb,BorderLayout.CENTER);
  JLabel result =new JLabel("无反馈信息");
  result.setForeground(Color.blue);
  win.add(result,BorderLayout.SOUTH);
  int da=0;
  int guessa=0;
  String a = null;
  button.addActionListener(new ActionListener()
                  {
                  public void actionPerformed(ActionEvent e)
                     { 
                         int da=0;
                         da=(int)(1+Math.random()*(10-1));
                     }
                  });
 queding.addActionListener(new ActionListener()
                  {
                  public void actionPerformed(ActionEvent e)
                     { 
                         int guessa=0;
                         String a = null;
                         a=guess.getText();
                         guessa=a.charAt(0);
                         if (guessa == da)
                         {

                             JLabel resultr=new JLabel("猜测正确");
                             resultr.setForeground(Color.blue);
                             win.add(resultr,BorderLayout.SOUTH);
                         }else if(guessa<da)
                         {
                             JLabel resultx=new JLabel("猜小了");
                             resultx.setForeground(Color.blue);
                             win.add(resultx,BorderLayout.SOUTH);
                         }else
                         {
                             JLabel resultd=new JLabel("猜大了");
                             resultd.setForeground(Color.blue);
                             win.add(resultd,BorderLayout.SOUTH);
                         };
                     }
                  });
  win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
  public static void main(String[] args)
 {
new GuessWindow();
 }

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • qq_40391363 大大泡泡糖1996 3年前

    内部类可以直接使用成员变量的,如果是引用类型的,也可以直接使用的,比如List,Map,数组之类的

    点赞 评论 复制链接分享
  • YU_Cheng_Long 浮生-半日 3年前

    用成员变量,内部类应该可以直接使用外部类的成员变量

    点赞 评论 复制链接分享
  • weixin_43960043 麦高芬� 3年前

    就是要实现一个猜数小游戏,通过点击第一个按钮获得随机数,然后输入一个数字后点击确定,用输入的数字和产生的随机数进行比较

    点赞 评论 复制链接分享

相关推荐