2011-04-29 97 views
4

我真的需要一些关于如何在Java中创建GUI的指导。我是一名大学生,这是他们从不关注的事情之一。我目前有我的程序的其余部分设置和工作,现在我正在尝试制作GUI。我正在为此创建一个新的GUI类。 (我的印象是这是最佳做法)。我了解如何进行基本设置,但是我不明白如何与之后的GUI进行交互。我想要做的是在启动时创建一个窗口,然后它将两个图片并排显示,并在下面显示一个标签。我希望图像可以点击,点击后将两个新图像加载到它们的位置(标签更改为下方)。我没有做过这样的事情,我也遇到过很多不同的方式来添加图片,我想知道是否有最佳做法。Java中使用Swing的GUI

如果需要,我可以提供代码,但我不认为这将需要我的问题是如何提出的。

在此先感谢您的帮助。

+9

你或许应该开始读[摇摆线索(http://download.oracle.com/javase/tutorial/uiswing/)。 – asgs 2011-04-29 20:58:47

+1

如果你使用ide,Netbeans也有一些很棒的教程http://netbeans.org/kb/docs/java/quickstart-gui.html – grantk 2011-04-29 21:07:20

+0

“我的问题是如何提出的。”只有一个问题以'?'结尾而文本缺乏'?'。换一种说法 - 毫无疑问。 – 2011-04-30 04:06:24

回答

7

几点建议:

  • 将您的图像放入ImageIcons。考虑使用ImageIcons的ArrayList。
  • 在JLabel中显示ImageIcons。您可以通过调用setIcon(...)来更改图标。
  • 在同一个JLabel中显示你的文本(或者如果你愿意,在图像JLabel下面的一个不同的JLabel被一个BorderLayout使用的JPanel持有)。通过setText(...)方法更改JLabel文本。
  • 将MouseListener添加到图像控制JLabel并更改侦听器的mousePressed方法中的JLabel图标。您可以通过mousePressed MouseEvent参数的getSource()方法获取对单击的标签的引用。
  • asgs的评论中提到的教程将帮助你解决所有这些问题。

编辑1:

  • 更妙的是 - 去与深褐色的下面我文章的评论推荐!
+3

或在JButtons上显示图片图片(如果你不喜欢,你可以不设边框)。然后,您可以侦听ActionEvents(高级)而不是MouseEvents(低级)。 – Puce 2011-04-29 21:32:41

+0

+1所有不错的建议。 – Boro 2011-04-29 22:50:27

3

从我在Swing的5年经验中获得两个个人建议。

学习使用LayoutManagers而不是GUI构建器编写GUI。 (MigLayout是最好的选择)

了解如何编写TableModel,而不是使用DefaultTableModel。