java - 带背景的 Jframe.Jbutton

标签 java swing background jframe jbutton

我写了这段代码,但是当我启动它时,我可以看到我的背景,但看不到上面的按钮?如果有人可以帮助我,那就完美了!

package hamza;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class fr {

   public static void main(String[] args){

   JFrame frame = new JFrame("ORDERING FOOD APPLICATION");
   JPanel panel = new JPanel();
   ImageIcon icon = new ImageIcon("hamburger.jpg"); 
   frame.setIconImage(icon.getImage());
   frame.setSize(700, 700);
   frame.setVisible(true);

   try {
      frame.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("fd12.jpg")))));
   } catch (IOException e) {
      e.printStackTrace();
   }

最佳答案

  1. 在完成 UI 设置之前不要使框架可见
  2. 优先选择 pack 而不是 setSize
  3. JLabel 默认情况下没有布局管理器,因此您需要提供一个
  4. JLabel 不会根据其子组件计算其首选布局大小(它将忽略布局管理器),它仅使用 icontext 属性,所以要小心。

Click me

JFrame frame = new JFrame("ORDERING FOOD APPLICATION");
JPanel panel = new JPanel();
ImageIcon icon = new ImageIcon("hamburger.jpg");
frame.setIconImage(icon.getImage());

try {
    frame.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("fd12.jpg")))));
} catch (IOException e) {
    e.printStackTrace();
}
frame.setLayout(new GridBagLayout());
JButton btn = new JButton("Click me");
frame.add(btn);
frame.pack();
frame.setVisible(true);

参见this使用 JLabel 的替代方案可能更灵活

关于java - 带背景的 Jframe.Jbutton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262087/

相关文章:

java - Apache Tomcat 不包含 conf/Catalina/localhost

java - Swing 消息只有在 Runtime.getRuntime().exec() 完成执行后才会显示

android - Appcelerator Titanium 安卓后台定位服务

css - PrimeFaces panelGrid 中的透明背景色

java - 无法在 eclipse kepler 上安装 spring tools 4 ( sts 4 ) - 缺少要求

java - 如何使用 UCanAccess 插入行?

java - 如何使用选项检查标签是否已选中

绘制多个多边形后Java绘图程序变慢

java - 根据内容垂直调整 Jtable 的大小

jquery - 拖放 : changing the background