所以这可能看起来很奇怪,但我正在尝试创建一个非常基本的游戏,它的工作原理有点像一个较老的RPG游戏的界面(考虑从列表中选择攻击(例如: Pokemon))。
现在我有一个扩展JFrame的类,它包含三个面板的私有变量:一个用于在屏幕顶部75%的位置显示精灵,另外两个是我希望在上面显示文本的面板(一个用于"CRITICAL HIT“之类的公告,另一个用于可选选项)。第二个文本框有时才会可见,但这是不相关的。
有没有人能帮我开场或者帮我一把?我正在寻找许多方法,但似乎没有一种方法能满足我的需求。
编辑:我的游戏已经布置好了,精灵面板完全按照它应该的样子工作,尽管听起来很像它,但我并没有盲目地做任何事情。除了以一种有效的方式显示对话框之外,我已经让游戏正常工作了。
编辑2:好吧,也许我说得不太清楚,我最关心的是找到最好的Java组件来绘制底部面板的字符串。字符串将定期更改,因此我尝试过的一些方法(如图形drawString() )并不是很有效。
谢谢你,罗夫哈
发布于 2011-05-10 03:21:53
那么,你最初的问题陈述缺乏任何实际的内聚性问题,除了“有人可以让我开始或帮助我吗?”这使得你很难弄清楚你真正需要的是什么。我了解到,您希望我们提供帮助的是在发生事件时向用户显示弹出的对话框。如果你不太关心特效,有三种简单的方法可以做到:
1)只需为您的消息设置精灵,并根据需要将它们设置为可见。如果您的重要消息数量有限,则可以轻松控制消息的可见性/闪光性。
2) JTextArea允许您简单地将一些文本打印到框中。如果你有一个冗长的控制台,或者消息不能仅仅是几张图片,那么它是很有用的。您只需在您的面板中有一个JTextArea,并根据需要对其进行更新:
JTextArea messageBox;
messagePanel.add(messageBox);
//displays a message
messageBox.setText("CRITICAL HIT!!!");
但是用户可能不会注意到文本何时改变,因为它是立即改变的。您是想闪现文本,还是在文本区域顶部显示一些动画,这取决于您。
3)如果你想要一个更具侵入性的消息,你实际上可以有一个弹出对话框,用户必须点击"OK“才能继续。这相对容易做到,您甚至可以为消息放置自定义图标:
http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html
JOptionPane.showMessageDialog(myFrame,
"You got a critical hit!!!",
"Critical Hit",
JOptionPane.INFORMATION_MESSAGE,
criticalHitIcon);
https://stackoverflow.com/questions/5944657
复制