永发信息网

java程序,下落()的方法为什么不能实现?帮忙改正一下。谢谢

答案:2  悬赏:30  手机版
解决时间 2021-03-03 04:15
import java.awt.*;
import javax.swing.*;
import java.awt.Color;
import java.awt.Graphics;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Tetris extends JFrame{

public static void main(String[] args) {
Tetris frame = new Tetris();
JMenuBar menu = new JMenuBar();
frame.setJMenuBar(menu);
JMenu game = new JMenu("游戏");
JMenuItem newgame = game.add("新游戏");
//JMenuItem pause = game.add("暂停");
JMenuItem goon = game.add("继续");
JMenuItem exit = game.add("退出");
JMenu help = new JMenu("帮助");
JMenuItem about = help.add("关于");
menu.add(game);
menu.add(help);

//frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 500);
frame.setTitle("Tetris内测版");
// frame.setUndecorated(true);
frame.setVisible(true);
frame.setResizable(true);//即可以用鼠标拖大,小窗口
}

public Tetris(){
add(new a());

}

static class a extends JPanel {

int[][] luos=new int[20][10];

public a() {
Timer timer = new Timer(100, new TimerListener());
timer.start();
下落();
}

void 下落() {
for(int h=18;h>=0;h--) {
for(int l=0;l<10;l++) {
if(luos[h][l]==1) {
luos[h][l]=0;
luos[h+1][l]=1;
}
}
}
}

public void paintComponent(Graphics g) {
super.paintComponent(g);

造落块();
显示落块(g);

//画框框
g.setColor(Color.gray);
g.drawRect(20,30,300,400);

//画分数格子
g.setColor(Color.gray);
g.drawRect(325,30,60,400);

}

void 造落块() {
luos[8][4]=1;luos[8][5]=1;
luos[9][4]=1;luos[9][5]=1;
}

void 显示落块(Graphics g) {
for(int h=0;h<20;h++) {
for(int l=0;l<10;l++) {
if(luos[h][l]==1)
{ g.setColor(Color.red);
g.drawRect(h*20,l*20,20,20);}
}
}
}

class TimerListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
repaint();
}
}

}

}
是不是线程什么的冲突了啊?我不知弄线程,帮忙弄下
最佳答案
你好,下落()的确运行了(不信,可以加个输出语句试试,
下落(){System.out.print("!!!!!!");。。。})
,但是运行没结果,因为if里面的条件满足不了啊,在你新建int[][] luos=new int[20][10];
时,它的默认值都是0,当你运行下落()的时候,当然没有luos[h][l]==1的格子,所以
luos[h][l]=0;
luos[h+1][l]=1;
是执行不了的.
你可以修改一下下落(),虽然不知道你想实现什么功能.
全部回答
Java不支持有标识符、类、接口、枚举、方法、变量名称中使用中文,修改为: import javax.swing.*; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; public class Tetris extends JFrame{ public static void main(String[] args) { Tetris frame = new Tetris(); JMenuBar menu = new JMenuBar(); frame.setJMenuBar(menu); JMenu game = new JMenu("游戏"); JMenuItem newgame = game.add("新游戏"); JMenuItem goon = game.add("继续"); JMenuItem exit = game.add("退出"); JMenu help = new JMenu("帮助"); JMenuItem about = help.add("关于"); menu.add(game); menu.add(help); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 500); frame.setTitle("Tetris内测版"); frame.setVisible(true); frame.setResizable(true);//即可以用鼠标拖大,小窗口 } public Tetris(){ add(new a()); } static class a extends JPanel { int[][] luos=new int[20][10]; public a() { Timer timer = new Timer(100, new TimerListener()); timer.start(); myDown(); } void myDown() { for(int h=18;h>=0;h--) { for(int l=0;l<10;l++) { if(luos[h][l]==1) { luos[h][l]=0; luos[h+1][l]=1; } } } } public void paintComponent(Graphics g) { super.paintComponent(g); createDown(); listDown(g); //画框框 g.setColor(Color.gray); g.drawRect(20,30,300,400); //画分数格子 g.setColor(Color.gray); g.drawRect(325,30,60,400); } void createDown() { luos[8][4]=1;luos[8][5]=1; luos[9][4]=1;luos[9][5]=1; } void listDown(Graphics g) { for(int h=0;h<20;h++) { for(int l=0;l<10;l++) { if(luos[h][l]==1) { g.setColor(Color.red); g.drawRect(h*20,l*20,20,20);} } } } class TimerListener implements ActionListener { public void actionPerformed(ActionEvent e) { repaint(); } } } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
利亨超市温泉店我想知道这个在什么地方
vb 已过时了吗?以后全国二级还考VB吗?VB还
弯梁摩托车怎么改装可以不使用蓄电池
零申报的企业年度报表怎么填?
商丘那里有生产加气块的厂家 急用
【used to】usedto与usedtobe的区别用法
从潍坊到杭州高速怎么走啊要几个小时到啊
单选题Boysdon'tlike________becauseit'sbo
辽宁华农农机装备制造有限公司在哪里啊,我有
aaaa!南开区密云一指路五金城附近铁路旁的小
为什么汽车里程表一下降一下升谁,是不有问题
中药里有牙造这个名吗
味叭蕃地址在什么地方,想过去办事
智能投影机能看3D电影吗?想周末窝在家看!
泵的压头单位MLC什么意思
推荐资讯
怎么找到手机中的微信文件夹
爱苗食品公司这个地址在什么地方,我要处理点
50万左右买什么suv
什么是液压泵的自吸能力和吸空现象?
上海曹安国际商城1855号里哪家公司是正规的?
打完除皱针上眼皮塌了
贵阳路我想知道这个在什么地方
皮肤过敏单吃开瑞坦有用吗
郑州小米手机有实体店都有哪些
5时30分=?时 17时30分=?时 40时30分=?
手机把你拉成黑名单了,你拨打是不是一直都是
非德语专业的学生适合什么证书考试?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?