Representación gráfica en la barra de título

Los gráficos siguen apareciendo en la barra de título. Uso una imagen almacenada en un buffer encapsulado en un jlabel y uso los objetos gráficos resultantes para dibujar rectangularjs en mi código. Esta es la parte importante del constructor de la clase jframe:

super(); BufferedImage image=new BufferedImage(680,581,BufferedImage.TYPE_INT_ARGB); m_graphicsObject =image.getGraphics(); JLabel label=new JLabel(new ImageIcon(image)); // buttons, mouse events and other controls use listeners to handle actions // these listener are classes btn1 = new JButton("Go!"); //btn1.setPreferredSize(new Dimension(100, 30)); btn1.addActionListener(new button_go_Click()); //listener 1 btn2 = new JButton("Clear!"); //btn2.setPreferredSize(new Dimension(100, 30)); btn2.addActionListener(new button_clear_Click()); //listener 2 //always add created buttons/controls to form JPanel panel=new JPanel(new GridLayout(20,2)); panel.add(btn1); panel.add(btn2); Container pane = this.getContentPane(); pane.add(label); pane.add(panel, BorderLayout.EAST); this.setSize(680,581); this.setVisible(true); 

El problema es que no estás teniendo en cuenta el borde del marco (y posiblemente también la barra de menú) cuando configuras el tamaño del marco …

En lugar de usar this.setSize(680,581) que hará que la imagen se this.setSize(680,581) dentro de los bordes de los marcos (y más allá en un espacio no visible), simplemente debe llamar a JFrame#pack y dejar que el marco decida cómo dimensionarlo mejor ( basado en el tamaño preferido de su contenido)

enter image description hereenter image description here

A la izquierda, tamaño absoluto, tamaño correcto preferido

 public class SimpleImageLabel { public static void main(String[] args) { new SimpleImageLabel(); } public SimpleImageLabel() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException ex) { } catch (InstantiationException ex) { } catch (IllegalAccessException ex) { } catch (UnsupportedLookAndFeelException ex) { } JLabel imageLabel = new JLabel(); try { imageLabel.setIcon(new ImageIcon(ImageIO.read(new File("/path/to/image")))); } catch (Exception e) { } JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(imageLabel); frame.pack(); // <-- The better way // frame.setSize(imageLabel.getPreferredSize()); // <-- The not better way frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } } 

Como mencioné anteriormente, debe establecer la posición de su JLabel usando

 aJLabel.setLocation(Point p) 

O

 aJLabel.setLocation(int x, int y) 

si su imagen es demasiado grande, tendrá que cambiar el tamaño también para obtener una buena ubicación (:

Atentamente.