使用JFrame以外的组件在Java GUI中显示图像

Ani*_*ilJ 0 java user-interface swing awt

我是Java GUI编程的新手.我正在开发一个应用程序,我需要在UI上显示图像,以及其他一些按钮/控件.我有一段使用JFrame的代码.

我的要求是我想添加一些小部件,比如按钮来启动/停止显示图像等.当我使用Jframe显示图像时,它占用了整个JFrame,我无法添加其他控件.

我正在寻找可以显示图像的东西,并将其作为组件添加到JFrame中.有人可以解释一下如何做到这一点?

Hov*_*els 7

我是Java GUI编程的新手.我正在开发一个应用程序,我需要在UI上显示图像,以及其他一些按钮/控件.我有一段使用JFrame的代码.

作为一个未被征求意见的一般建议,我建议您尽量避免让您的类扩展顶级窗口类(如JFrame),因为这将极大地限制您可以对该类执行的操作.如果你需要扩展它是一个JPanel的Swing组件,那就更好了,因为它可以放在JFrame,JDialog,JOptionPane,另一个JPanel中......几乎在你的GUI中的任何地方.请注意,大多数情况下,您甚至不需要让您的类扩展组件.

我的要求是我想添加一些小部件,比如按钮来启动/停止显示图像等.当我使用Jframe显示图像时,它占用了整个JFrame,我无法添加其他控件.

这有点令人困惑,因为JFrame本身没有显示图像的机制.

我正在寻找可以显示图像的东西,并将其作为组件添加到JFrame中.有人可以解释一下如何做到这一点?

您的要求有点模糊,但请考虑:

  • 为要显示的每个图像创建ImageIcons,并保存图标.
  • 创建单个JLabel以显示图像.
  • 调用setIcon(someIcon)JLabel来交换图像.
  • 如果您的图像需要更改大小以适合显示它的组件,那么让您的显示组件扩展JPanel,并paintComponent(Graphics g)按照Kevin Workman的回答(1+对它!)以JPanel的方法显示您的图像.

如果此信息对您没有帮助,请通过向我们提供更相关的背景信息和相关代码,考虑更多地充实您的问题.