Java - 创建RPG对话框

时间:2011-05-10 02:54:36

标签: java swing graphics text

所以这可能看起来很奇怪,但我正在尝试创建一个非常基本的游戏,其工作方式有点像旧的RPG游戏可能具有的界面(想想从列表中选择攻击(例如:口袋妖怪))。

现在我有一个扩展JFrame的类,它包含三个面板的私有变量:一个用于在屏幕的前75%显示精灵,另外两个是我希望显示文本的(一个用于公告,例如“CRITICAL HIT”,另一个用于可选择的选项)。第二个文本框有时只能显示,但这是无关紧要的。

任何人都可以让我离开或帮我一把吗?我找到了许多方法,但似乎没有任何方法可以满足我的需求。

编辑:我的游戏布局完好,精灵面板完全正常工作,就像它听起来一样,我不是盲目地冲进去。除了以有效的方式显示对话框之外,我让游戏正常工作。

编辑2:好吧也许我不清楚,我的基本关注点是找到最好的Java组件来向底部面板绘制字符串。字符串将定期更改,因此我尝试过的一些方法(例如Graphics drawString())效果不是很好。

谢谢你, roflha

1 个答案:

答案 0 :(得分:1)

嗯,你原来的问题陈述缺乏任何实际的连贯性问题,除了“任何人可以让我开除我还是伸出援助之手?”这使得很难弄清楚你真正需要什么。我发现你想要我们提供帮助的是显示在某些事件发生时弹出给用户的对话框。如果你不太关心特效,有三种简单的方法可以做到这一点:

1)只需为您的消息添加精灵,并根据需要将其设置为可见。如果您的重要消息数量有限,则可以轻松控制消息的可见性/闪烁度。

2)JTextArea允许您简单地将一些文本打印到框中。如果你有一个冗长的控制台或消息不仅仅是一些图像,这是很有用的。您只需在面板中有一个JTextArea,并根据需要进行更新:

JTextArea messageBox;
messagePanel.add(messageBox);

//displays a message
messageBox.setText("CRITICAL HIT!!!");

但是用户可能不会注意到文本何时更改,因为它会立即更改。是否要在文本区域顶部显示文本或显示某些动画取决于您。

3)如果你想要一个更具侵入性的消息,你实际上可以有一个弹出对话框,用户必须点击“确定”才能继续。这相对容易,您甚至可以为消息添加自定义图标:

http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html

JOptionPane.showMessageDialog(myFrame,
    "You got a critical hit!!!", 
    "Critical Hit",
    JOptionPane.INFORMATION_MESSAGE,
    criticalHitIcon);