import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; public class InternalIcon { private JFrame frame; private JInternalFrame jif; public static void main(String[] args) throws Exception { final InternalIcon test = new InternalIcon(); SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { test.setupUI(); } }); } private void setupUI() { frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JDesktopPane desktop = new JDesktopPane(); frame.add(desktop); jif = new JInternalFrame("Internal Frame", true, true, true, true); jif.setBounds(20, 20, 200, 100); desktop.add(jif); BufferedImage bi = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); Graphics2D g = (Graphics2D) bi.getGraphics(); g.setColor(Color.BLACK); g.fillRect(0, 0, bi.getWidth(), bi.getHeight()); g.setColor(Color.YELLOW); g.drawLine(0, bi.getHeight(), bi.getWidth(), 0); jif.setFrameIcon(new ImageIcon(bi)); jif.setVisible(true); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); frame.setBounds((screen.width - 400) / 2, (screen.height - 400) / 2, 400, 400); frame.setLocationRelativeTo(null); frame.setVisible(true); } }