一个小白关于封装的问题

这是一段在elipse上写的java代码,运行没有问题,我想把它在andriod studio 上封装成apk,已经按照教程在elipse上创建gradle,导入andriod studio的时候也没有问题,也可以在上面运行,但是想封装的时候就没有找到generate single apk 选项,后面就进行不下去了,但是在as上新建一个项目,这个generate single apk选项就有了,请求各位大神帮帮我,指点一下是哪里出了问题,我在网上找了很长时间都找不到答案。谢谢各位了!
附件是可以导入as含有gradle的工程。

package dianshuzi;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Dianshuzi extends JFrame implements ActionListener{

public static Font f=new Font("宋体",Font.PLAIN,20);

JPanel jp1,jp2;
JLabel jb1,jb2,jb3;
static JLabel jb4;
JLabel jb5;
JTextField jtf;
JButton jb;
long t1;

int j=1;
static int bianchang;

Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();

Rectangle bounds=new Rectangle(screenSize);

public static void main(String[] args) {
// TODO 自动生成的方法存根
new Dianshuzi(6);

}

public Dianshuzi(int x)
{

//获取当前时间
t1=new Date().getTime();

//生成数组
int juzhen=xx; //数字矩阵大小
int xiabiao=x
x-1; //下标数
int s[]=new int[juzhen];
for(int i=0;i<juzhen;i++)
{
s[i]=i+1;

}

//大窗口设置

//this.setBounds(0, 0, 600, 600);

//界面全屏显示

this.setBounds(bounds);

// this.getGraphicsConfiguration().getDevice().setFullScreenWindow(this); //另外一种全屏显示的方法
this.setLayout(null);
this.setTitle("点数字游戏");
this.setBackground(Color.blue); //设置窗口底色

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点关闭后关闭后台

this.setVisible(true);

//设置面板1
jp1=new JPanel();
jp1.setLayout(null);
jp1.setBounds(0, 0, screenSize.width, 30);
//jp1.setLayout(new FlowLayout(FlowLayout.LEFT));

//this.add(jp1,BorderLayout.NORTH); //放在窗口上面
this.add(jp1);

jb1=new JLabel();
jb1.setText("点到的数字:");
jb1.setBounds(0, 0,(int)(screenSize.width*0.12),25);
jb1.setFont(f);
jp1.add(jb1);

jb2=new JLabel();
jb2.setText("");
jb2.setBounds((int)(screenSize.width0.145), 0,(int)(screenSize.width0.0645),25);
jb2.setFont(f);
jp1.add(jb2);

jb3=new JLabel();
jb3.setText("完成时间:");
jb3.setBounds((int)(screenSize.width0.2258), 0,(int)(screenSize.width0.1048),25);
jb3.setFont(f);
jp1.add(jb3);

jb4=new JLabel();
jb4.setText("");
jb4.setBounds((int)(screenSize.width0.32258), 0,(int)(screenSize.width0.0887),25);
jb4.setFont(f);
jp1.add(jb4);

jb5=new JLabel();
jb5.setText("输入数字边长(数字1-9):");
jb5.setBounds((int)(screenSize.width0.4838), 0,(int)(screenSize.width0.2177),25);
jb5.setFont(f);
jp1.add(jb5);

jtf=new JTextField();
jtf.setBounds((int)(screenSize.width0.7096), 0,(int)(screenSize.width0.04838),25);
jp1.add(jtf);

jb=new JButton("重置");
jb.setBounds((int)(screenSize.width0.79), 0,(int)(screenSize.width0.06),25);
jp1.add(jb);
//注册监听
jb.addActionListener(this);

//设置面板2
jp2=new JPanel();
jp2.setBounds(0, 31, screenSize.width, screenSize.height-50);
jp2.setLayout(new GridLayout(x,x,0,0));
//this.add(jp2,BorderLayout.CENTER);//放在中间
this.add(jp2);

//创建按钮
JButton []jb=new JButton[juzhen];

for(int i=0; i<juzhen; i++)
{
int y=new Random().nextInt(xiabiao+1);//生成随机下标
jb[i]=new JButton(s[y]+""); //下标指定成员值加入按钮
jb[i].setFont(f);
jp2.add(jb[i]);
jb[i].addActionListener(this);//对象数组注册监听
jb[i].setActionCommand(jb[i].getText());//得到对象数组成员的名字
s[y]=s[xiabiao];//下标最后一个成员交换到已经加入按钮的成员
xiabiao=xiabiao-1; //下标减少1,收缩范围

}

}

@Override
public void actionPerformed(ActionEvent e) {
//点击重置,重新游戏并且开始计时

if(e.getActionCommand().equals("重置"))
{

if(jtf.getText()!="")
{
this.dispose();//关闭现时窗口
bianchang=Integer.parseInt(jtf.getText());
new Dianshuzi(bianchang);
new Jishi(jb4).start();

}

}

if(e.getActionCommand().equals(j+""))
{
jb2.setText(e.getActionCommand());
j++;
if(j==bianchang*bianchang+1)
{

new Msg(Integer.toString((int)((new Msg().get()-t1)/1000))+"秒");
// System.out.println("t1:"+t1);
// System.out.println("t2:"+t2);
}

}

}

}

class Jishi extends Thread{
JLabel s;
int times;

public Jishi(JLabel s)
{
this.s=s;
}

public void run(){
times=0;

while (true) {
try {
//休眠一秒
Thread.sleep(1000);

} catch (Exception e) {
break; //如果中断此线程,跳出死循环从而结束线程
}

times++;
s.setText(times+"秒");
}
}
}

class Msg extends JFrame{
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
int screenWidth = screenSize.width/2; // 获取屏幕的宽
int screenHeight = screenSize.height/2; // 获取屏幕的高

int height = 150;
int width = 100;

long t2=new Date().getTime();
public Msg(String s)
{
this.setTitle("完成时间");
this.setSize(300, 200);
this.setVisible(true);

setLocation(screenWidth-width/2, screenHeight-height/2);//设置在屏幕中间

JLabel jb6=new JLabel();

this.add(jb6);
jb6.setText(s);
jb6.setFont(new Font("宋体",Font.PLAIN,20));

}
public Msg()
{

}
public long get(){
return t2;
}

}
2018-06-25 10:22 添加评论 分享
已邀请:

要回复问题请先登录注册

退出全屏模式 全屏模式 回复