程序界面无法显示-请各位指点一下

ZSP95 2007-04-30 11:54:17
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import java.util.*;

public class CrapsGame extends JFrame
{
private JPanel pointDiceJPanel;
private TitledBorder pointDiceTitledBorder;

private JLabel pointDie1JLabel;
private JLabel pointDie2JLabel;
private JLabel die1JLabel;
private JLabel die2JLabel;

private JButton playJButton;
private JButton rollJButton;

private JLabel resultJLabel;
private JTextField resultJTextField;

private final int LUCKY_SEVEN = 7;
private final int YO_LEVEN = 11;

private final int SNAKE_EYES = 2;
private final int TREY = 3;
private final int BOX_CARS = 12;
private final int CRARS = 7;

private final String FILE_PREFIX = "Image/die";
private final String FILE_SUFFIX = ".gif";

private int myPoint = 0;
private Random randomObject ;//= new Random();

public void CrapsGame()
{
createUserInterface();
}
private void createUserInterface()
{
Container contentPane = getContentPane();//思维定势new getContainer();错误的方法getContainer()
contentPane.setLayout(null);

pointDiceJPanel = new JPanel();
pointDiceJPanel.setBounds(16,16,200,200);

pointDiceTitledBorder = new TitledBorder("point number");
//错的方法pointDiceTitledBorder.add(pointDiceJPanel);//pointDiceJPanel.add(pointDiceTitledBorder);
pointDiceJPanel.setBorder(pointDiceTitledBorder);
contentPane.add(pointDiceJPanel);

pointDie1JLabel = new JLabel();
pointDie1JLabel.setBounds(26,26,85,85);
pointDiceJPanel.add(pointDie1JLabel);

pointDie2JLabel = new JLabel();
pointDie2JLabel.setBounds(121,26,85,85);
pointDiceJPanel.add(pointDie2JLabel);

die1JLabel = new JLabel();
die1JLabel.setBounds(26,226,50,50);
contentPane.add(die1JLabel);
die2JLabel = new JLabel();
die2JLabel.setBounds(81,226,50,50);
contentPane.add(die2JLabel);

playJButton = new JButton("Play");
playJButton.setBounds(236,16,30,10);
contentPane.add(playJButton);
playJButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
playJButtonActionPerformed(evt);
}
});
rollJButton = new JButton("Roll");
rollJButton.setBounds(236,36,30,10);
contentPane.add(rollJButton);
rollJButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
rollJButtonActionPerformed(evt);
}
});
resultJLabel = new JLabel();
resultJLabel.setText("Result:");
resultJLabel.setBounds(236,56,30,10);
contentPane.add(resultJLabel);

resultJTextField = new JTextField();
resultJTextField.setBounds(236,66,30,30);
resultJTextField.setEnabled(false);
resultJLabel.setHorizontalAlignment(JLabel.RIGHT);
contentPane.add(resultJTextField);

setTitle("CrapsGAme");
setSize(450,300);
contentPane.setVisible(true);
}
public void playJButtonActionPerformed(ActionEvent evt)
{
// pointDie1JLabel.setIcon(null);
// pointDie2JLabel.setIcon(null);

pointDiceTitledBorder.setTitle("Point number");
pointDiceJPanel.repaint();

int sum_dice = rollDice();
switch(sum_dice)
{
case LUCKY_SEVEN:
case YO_LEVEN:
rollJButton.setEnabled(false);
resultJTextField.setText("You win");
break;
case SNAKE_EYES:
case TREY:
// case CRARS:
case BOX_CARS:
resultJTextField.setText("You lose");
playJButton.setEnabled(false);
rollJButton.setEnabled(true);
break;
default:
myPoint = sum_dice;
resultJTextField.setText("Please play again");

// displayDice(pointDie1JLabel,die1JLabel.getIcon());
// displayDice(pointDie2JLabel,die2JLabel.getIcon());
pointDie1JLabel.setIcon(die1JLabel.getIcon());
pointDie2JLabel.setIcon(die2JLabel.getIcon());
pointDiceTitledBorder.setTitle("Point number is"+sum_dice);
pointDiceJPanel.repaint();

playJButton.setEnabled(false);
rollJButton.setEnabled(true);
break;

}

}
private void rollJButtonActionPerformed(ActionEvent evt)
{
int sum_dice = rollDice();

if(sum_dice == myPoint)
{
resultJTextField.setText("You win");
rollJButton.setEnabled(false);
playJButton.setEnabled(true);
}
else if(sum_dice == CRARS)
{
resultJTextField.setText("You lose");
rollJButton.setEnabled(false);
playJButton.setEnabled(true);
}
}
private int rollDice()
{
Random randomObject = new Random();
int dice1 = 1+randomObject.nextInt(6);
int dice2 = 1+randomObject.nextInt(6);

displayDice(die1JLabel,dice1);
displayDice(die2JLabel,dice2);

return dice2+dice1;

}
private void displayDice(JLabel picDiceJLabel,int face)
{
ImageIcon image1 = new ImageIcon(FILE_PREFIX+face+FILE_SUFFIX);
picDiceJLabel.setIcon(image1);
}
public static void main(String[] args)
{
CrapsGame application = new CrapsGame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}
...全文
173 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZSP95 2007-05-04
  • 打赏
  • 举报
回复
多谢了两位 辛苦
哥就是传说 2007-05-03
  • 打赏
  • 举报
回复
楼上的错了, 修改

contentPane.setVisible(true);



this.setVisible(true);

因为第一个contentPane是一个JPanel 面板, 而不是框架.
要让框架显示直接setVisible(true);

这个方法是父类Component
的方法, 所有组件都有这个显示关闭的方法.
zhuokai 2007-04-30
  • 打赏
  • 举报
回复
remove this:
contentPane.setLayout(null);
Matlab关于数据传递的一个要点图-zhenghui.rar 最近一直在研究多个GUI之间进行数据传递的问题,经过昨天一天的潜心研究(OO),大概已经掌握了要点, 在此谢过那些帮助我的朋友! 今天练习了一下,一开始,总感觉思路是正确的,但是,结果总说是应用了不存在的域,很是郁闷,最好,在子GUI的初始化函数OpeningFcn函数中,心里不知道怎么想的,觉得应该把uiwait放到函数结尾 最终实现了预想的目的,原来就是uiwait位置放错的,看来代码的前后顺序是很重要的 而且,MATALB自带的那些程序,就是把uiwait放在了最好,所以说,以后大家编程时,尽量按 MATALB自带的那个顺序进行编写,这样可以少出一些错误。 以上仅为自己个人观点,如有不对,欢迎各位朋友指点! 下面的是程序源代码,有需要的可以直接复制,控件自己添加以下,把相应位置的代码添加进去就OK了 主程序: 1.初始化函数 function zheng1_OpeningFcn text='Please input the number'; handles.text1=text; guidata; set; % Choose default command line output for zheng1 handles.output = hObject; % Update handles structure guidata; 复制代码2.点击进入子界面代码 function pushbutton1_Callback % hObject    handle to pushbutton1 % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data Newtext=zheng2; handles.text=Newtext; guidata; set; 复制代码3.退出代码 function pushbutton2_Callback % hObject    handle to pushbutton2 % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data close; 复制代码子界面程序: 初始化: function zheng2_OpeningFcn maintext=varargin{1}; handles.mainhandles=maintext; guidata; set; % Choose default command line output for zheng2 handles.output = hObject; % Update handles structure guidata; % UIWAIT makes zheng2 wait for user response uiwait;%%%%%%%%%就是这一句,一定要放在初始化函数的最后!!! 复制代码 function varargout = zheng2_OutputFcn varargout{1} = handles.text; delete; 复制代码编辑框中的代码 function edit1_Callback value=get; handles.text=value; guidata; 复制代码exit按钮的代码 % --- Executes on button press in pushbutton2. function pushbutton2_Callback uiresume; 复制代码 01.jpg 02.jpg
如果你喜欢这个免费软件,MAIL一封信以对我的支持。 Collector资料收集管理器 V4.1 Collector资料收集管理器能够把您收集的文本、网页、图片等资料都存放在一起,统一管理的绿色免费软件。 使用系统图标,支持大容量数据库,支持拖拉操作,采用视窗风格,目录树结构管理,所见即所得的设计理念,操作方便。 上网浏览网页时允许通过定制IE的右键菜单来方便收集网页、图片和文字。 本软件特色是可以直接把整个网页保存成MHT或JPG格式的文件,独特的收集网页图片模式。 本地导入速度一流,比其它同类的软件都快很多(可以在网上找一个同类软件导入过万条记录比较)。 是一个非常实用的电子书制作工具;可以把数据库文件转换成可执行文件(*.exe),也可以制作成CHM文件。 您可以给书籍文件或者节点设置密码。 可以实时备份数据库,可查看修改记录,保证你的数据安全。 免费分享数据库。 附带一个例子数据库,里面有使用方法。 讨论Collector 资料收集管理器的QQ群号码 27585577 论坛 http://14500001.blog.163.com/ http://user.qzone.qq.com/14500001 V4.1版本 更新日期 2010-03-20 更新内容 1、调整菜单; 2、修正批量改节点功能; 3、添加另存数据库功能; 4、修正对实时备份数据库的判断。 更新日期 2010-01-04 更新内容 1、升级数据库版本,支持更多功能; 2、使用SQLite数据库(RTB)进行实时备份数据库,数据库(HDF)打开始加载。 2、全新界面,可改变布局和改变皮肤; 3、查询状态下可修改数据; 4、EXE电子书文件可自定义图标。 更新日期 2009-03-24 21:00:00 更新内容 1、修正新建数据库的一个问题; 2、改写保存数据库方式; 更新日期 2009-02-21 23:45:00 更新内容 1、修正不允许运行多个Collector时,程序最小化无法密码保护问题; 2、修正制作EXE电子书的一个问题; 3、添加收集网页时先对数据进行校验再导入,防止导入空数据破坏节点; 4、修正判断OFFICE是否安装的问题。 2008-10-15 16:35:00 更新内容 1、一些微小的改动 2、修正软件在数据库只读环境下导出的问题 2008-08-25 更新内容 1、添加翻页阅读; 2、添加批量改名; 3、添加闹钟提醒; 4、添加最小化到任务栏; 5、添加保存时检查索引。 2008-08-01 16:10:00 更新内容 1、修正由于空文件夹无法生成CHM电子书的问题; 2008-07-17 更新内容 1、修正导出CHM文件每个目录的连接。 2008-07-10 更新内容 1、修正判断是否安装OFFICE的问题; 2、优化收集网页(htm格式)代码。 2008-06-26 14:30:00 更新内容 1、修正收集某些网页时无法浏览的问题; 2008-06-19 14:15:00 更新内容 1、修正收集网页时某些图片无法显示问题; 2、修正收集图片排序问题; 更新日期 2008-05-09 14:00:00 更新内容 1、修正新建数据库新建文件提示密码问题; 更新日期 2008-04-24 15:30:00 更新内容 1、修正新建数据库导入本地文件提示密码问题; 2、修正无法打开只读属性文件的问题; 3、修正回收站无法导出CHM问题; 4、...... 更新日期 2008-04-16 15:00:00 更新内容 1、更换文本文件编辑,支持语法高亮显示; 2、添加网页编辑功能; 3、使用软件自身做电子书执行文件,大大减少软件大小。 4、..... 更新日期 2008-03-14 16:00:00 更新内容 1、支持OFFICE2007最新的XLSX、DOCX、PPTX格式文件。 2、添加回收站功能。 3、添加节点排序功能。 4、修正一个加密问题。 5、修正按内容搜索后,切换到编辑窗口后不能编辑。 更新日期 2008-03-04 10:30:00 更新内容 1、添加读书模式(文本类型文件); 2、添加自定义调用外部编辑器编辑功能(文本类型文件); 3、修正修改节点(文件夹)备注会损坏节点图标问题; 4、添加记忆悬浮窗位置功能; 5、修正收集图片时收集窗体无法最前端功能(IE7); 6、加快调用QQ抓图速度; 7、修改导入本地文件不是在选中节点下的问题 更新日期 2008-02-23 14:00:00 更新内容 1、修改截图,使用最新的QQ截图功能; 2、修正加载数据库时的一个问题; 3、判断是否使用OFICE2007,对OFFICE2007,不再使用IE打开方式。 更新日期 2008-02-01 15:50:00 更新内容 1、修正打开数据库CPU占用率很高的问题 2008-01-25 11:00:00 更新内容 1、添加...... 2、添加抓图到文本文件功能,保存时需要转为RTF格式。 3、修正只读打开还能添加数据的问题。 2007-12-29 1、添加书签保存、管理功能 2、修正一个损坏节点问题 3、添加编辑文本的一些功能 4、添加数据库列表功能 5、修正一些小问题 更新日期 2007-12-21 1、修正网页滚动抓图问题 更新日期 2007-12-15 1、添加最小化到托盘选项 2、添加启动显示悬浮窗选项 3、添加更改软件所在文件夹图标选项 4、添加判断导入网页路径是否重复功能 5、添加支持从网页(暂时只文本)或图片拖拉到悬浮窗保存 6、修改软件内部拖拉功能(按Ctrl或Alt和不按功能不同) 7、修改软件启动的语言为上次选择的语言 8、添加关闭程序不提示备份选项 9、添加导入TXT文件取第一行内容为标题功能 更新内容(重要提示:及时备份数据) 2007-11-18 11:25:00 修正一个导入文件会损坏节点问题; 修正修改节点密码; 修正....... 2007-10-16 1、减少IE右键菜单(需重新创建到IE浏览器右键菜单才能生效) 2、添加收集时可编辑节点信息。 2007-10-10 15:55:00 1、添加word文件显示常用、格式工具栏及不显示审阅工具栏 2、添加Excel、PowerPoint文件显示常用、格式工具栏 2007-09-16 16:00:00 美化界面 自动提示版本更新 修正编辑文本保存的问题(之前是OK的) 2007-09-11 13:50:00 修正节点标题的复制粘贴问题 修正密码框焦点问题 修正菜单导入文件时只有exe文件的错误(之前是OK的) 2007-09-09 修正显示目录栏宽度问题; 修正自身复制监视剪贴板的问题; 修正收集网页图片的一个小问题。 V2.9 2007-09-06 17:00:00 添加调用OFFICE打开EXCEL、WORD、PowerPoint文件功能,而且修改后能自动回存到数据库。 修正浏览文本时TAB键不可用的问题。 添加最前端按钮。 添加直接调用QQ和作者交流; 2007-08-24 13:25:00 添加节点有附件时图标异样显示 2007-08-15 10:50:00 修正新建一个数据库时不能新建一个目录或文件 2007-08-10 15:45:00 1、添加修改文本的一些功能。 2、修正文本状态下设标题错误问题; 2.85 1、修正在VISTA下MHT格式收集网页无内容显示问题。 2.84 1、修正在VISTA下无法使用问题。 2.83版本 1、修正一些搜索问题; 2、添加新建根目录文件菜单。 2.82版本 1、修正在搜索数据库时导入本地文件会导致节点损坏的问题; 2、加快加载数据库。 3、改删除节点快捷方式为DEL键。 2.81版本 1、修正合并数据库会导致数据库损坏的问题; 2.8版本 1、添加内嵌打开、修改、保存EXCEL、WORD、PowerPoint文件功能(需要安装OFFICE); 2、添加内嵌打开PDF文件功能(需要安装PDF软件); 3、修正繁体下的一些问题。 4、添加图片预览功能; 5、修正一个会导致数据库损坏的问题; 6、修正几个小问题。 2.7版本 1、修改下载功能,添加HTTP代理模式; 2、添加标题着色功能; 3、修改收集网页(Htm)格式方法; 4、右键收集可以选择导入当前目录; 2.6版本 1、添加下载数据库功能。 2、创建或清除快捷方式无须重新打开ie。 3、修改加载图标算法,超速打开数据库。 打开数据库后使用修复图标功能,再次打开才能体现。 2.5版本 1、添加附件功能; 2、自定义抓图压缩率。 3、添加下载数据库功能。 4、创建或清除快捷方式无须重新打开ie。 2.4版本 1、添加最小化密码保护; 2、自定义滚动抓图刷新时间。 3、修正导出有重名的文件的问题。 4、修正查询HTM格式文件问题。 5、修正下载问题。 2.3版本 1、添加制作EXE格式电子书功能; 2、修正节点标题粘贴问题。 3、修正合并2.2版本数据库HTM格式的文件无法浏览的情况。 4、修改TXT文件被修改转为RTF的提示。 .... 2.2版本 1、修改保存网页HTM方式; 2、添加选择多张图片保存成HTM方式; 3、添加简单的图像编辑功能; 4、修改数据库结构(打开旧版本数据库会自动转换),添加文件备注; 注意:新版本数据库不能使用旧版本软件打开。 5、添加收集网页时自动保存功能; 6、...... 2.1版本 1、修改抓图方式,改为调用QQ链接库抓图(无需安装QQ); 2、修正在2003下抓网页为JPG图片不全问题; 3、修正在XP下导入网页图片节点添加问题; 4、搜索状态下添加导出功能; 5、添加数据库所在磁盘空间不足时导入过多数据提示; 6、修改在线升级; 7、添加节点手动排序; 8、加大悬浮窗口; 9、标题栏可以使用系统右键菜单(剪切粘贴复制); 10、在菜单中添加书签功能; 11、在菜单中添加导入功能; 12、添加清除软件在系统中的所有痕迹功能; 2.0版本 1、修正在WIN98下程序在根目录运行出错的问题; 2、修正在繁体系统下语言版本的问题; 3、添加在文档中插入图片和插入附件功能; 4、添加在线升级功能; 5、添加重要更能:支持所有文件类型; 6、添加自定义热键功能; 7、添加多种选项把保存网页成图片。 8、修改抓图模式。 9、修正一些错误。 1.9版本 1、添加导出数据生成程序数据库HDF格式功能。 2、修正合并数据库没有考虑到合并的数据库密码问题; 3、修正旧版本选择不压缩的数据库转为新版本的数据库浏览时数据出错的问题。 4、把hha.dll和hhc.exe这两个文件打包进执行文件。 5、添加制作CHM文件选项。 6、美化菜单; 使用技巧 1、务必要看例子数据库的使用方法。 2、浏览网页如果乱码,取消使用流浏览,IE5.0版本不支持MHT文件格式使用IE5.5或以上版本。 3、最小化可以双击右下角的图标来显示主窗体。 4、收集网页数据时最好先把一个数据库关联到我的最爱,这样就可以在软件没有运行的状态下点击IE右键菜单直接启动软件导进设好的数据库里面,无须先启动软件。注意:软件可以同时运行多个,收集网页时只运行一个。 5、如果你想修改左边目录文件的标题,可以把在右边选中的文字拖拉过去就行了,文本网页都可以。 6、经常备份数据库。 7、如果没有图片的网页不推荐保存成MHT格式,因为MHT格式文件大,而且打开耗内存(这是IE的问题)。 8、如果你删除了脚本文件,重新创建IE快捷方式。 1.8版本 1、添加合并数据库功能; 2、添加是否允许运行多个程序功能; 3、添加选择压缩方式功能; 4、优化内存使用; 5、修正从菜单功能中导进文件数据对不上的问题; 6、修正添加无内容文件时的BUG; 7、添加只读打开功能(要设置密码); 1.7版本 1、修改数据库格式,添加一些数据库信息,程序会把旧数据库自动转换到新版本的数据库格式,在同目录下面有后缀名为OLD的原数据库的备份文件,以防万一出错。 2、新版本已经把Collector.ini放到可执行文件的当前目录,而且新版本还有一个language文件夹和desktop.ini、Collector.ico两个文件。 3、添加清除本软件在注册表的信息,如果你不想用本软件可以选中清除软件痕迹菜单。 4、添加生成CHM格式功能(需要把hha.dll和hhc.exe这两个文件放在和Cellector.exe同一目录) 5、添加记录导进文件的路径功能。 6、添加书签功能,没有限制书签数目,搜索时也可以使用。 7、添加导入和其它一些菜单。 8、添加一些小功能和修正一些错误。 在例子数据库里添加了生成CHM文件和把网页抓图保存成JPG文件的源代码,希望各位指点。 1.6版本 1、添加浏览网页时把网页抓图保存成JPG文件功能(针对单框架网页); 2、添加设定数据库密码功能; 3、添加热键抓图功能(ALT+A); 4、添加最小化窗体或显示功能(ALT+Z); 5、修正把大网页保存成MHT文件出错的问题; 1.5版本 1、添加浏览网页时放大网页功能; 2、修正由于输入法引起的一个错误; 3、优化收集网页代码,改为直接使用内存流,加快导入速度。 1.4版本 1、重写使用IE右键收集网页的代码,能很好的收集网页(可以和其它软件对比看看结果),大大加强了IE收集功能, 2、添加把网页保存成文本功能, 3、添加支持RTF文件, 4、添加备份数据功能, 5、大幅度提高了打开数据库的速度, 6、修正了一次性导进超过5万条记录出错的BUG, 注意:1.4版本IE收集功能改变太大,如果使用了之前的版本 第一,删除Collector.exe根目录下面的*.htm文件,替换使用新版本的Collector.exe文件。 第二,手工删除IE右键带☆号的菜单(使用其它软件),运行本程序再重新创建IE右键菜单。  默认支持以下类型 .HTM;.HTML;.HTX;.HTW;.MHT;.MHTML;.SHTML;.XML;.EML;.SWF;.PHP;.TXT;.RTF;.JPEG;.JPG;.GIF;.BMP;.TIFF;.PCX;.ICO;.CUR;.PNG;.WMF;.EMF;.TGA;.PXM;.TIF;.XIF;.JPE;.JIF;.JFIF;.DCX;.ANI;

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧