2013-12-16 4 views
1

나는 JLabel을 가지고 있습니다. 방금 배경 이미지를 추가했습니다. 이제 그 위에 텍스트를 표시하고 싶습니다. label.setText("blabla"); 이미지 뒤에 텍스트가 표시됩니다. 어떻게해야합니까?배경 이미지가있는 JLabel에서 텍스트를 보낼 수 없습니다.

여기 내 코드

public Jadmin() { 

    setSize(800,500); 

    setDefaultCloseOperation(EXIT_ON_CLOSE); 

    setUndecorated(true); 

    setLocationRelativeTo(null); 

    JLabel jl=new JLabel(new ImageIcon("c://image.jpg")); 

    jl.setLayout(null); 

    add(jl); 

    jl.setText("hadsffffffffffffffffffi"); 

    setVisible(true); 
enter code here 
    } 
+0

http://stackoverflow.com/questions/ 8019792/set-background-image-in-jlabel-label-box-with-dynamic-text –

답변

1

사용의 JLabel의 setIconTextGap(int iconTextGap) 방법이며, 이미지의 정확한 폭을 설정하지만, 당신이 원하는 경우 부정적인 위치에 텍스트가 이미지 OVER 표시 할 수 있습니다.

예를 들어 이미지 폭이 125 픽셀 인 경우 setIconTextGap(-125)과 같은 방법을 사용하여 이미지 위에 텍스트를 표시하십시오.

편집 : 당신은이 작업을 수행 할 수 있습니다 JLabel의에서 아이콘에 텍스트를 표시하는 여러 가지 방법

ImageIcon bg; 

public Jadmin() { 

    setSize(800,500); 

    setDefaultCloseOperation(EXIT_ON_CLOSE); 

    setUndecorated(true); 

    setLocationRelativeTo(null); 

    JLabel jl=new JLabel(); 

    bg = new ImageIcon("IMAGE_PATH"); 
    jl.setIcon(bg); 
    jl.setIconTextGap(-IMAGE_WIDTH); 
    jl.setOpaque(true); 
    jl.setLayout(null); 

    add(jl); 

    jl.setText("hadsffffffffffffffffffi"); 

    setVisible(true); 
enter code here 
    } 
+0

자세히 설명해 주시겠습니까? –

+0

당신은 무엇에 정교가 필요합니까? – iWumbo

+0

시도 .... 작동하지 않음 –

1
다음

있습니다 예 :

import java.awt.*; 
import javax.swing.*; 
import javax.swing.text.*; 

public class LabelImageText extends JPanel 
{ 
    public LabelImageText() 
    { 
     JLabel label1 = new JLabel(new ColorIcon(Color.ORANGE, 100, 100)); 
     label1.setText("Easy Way"); 
     label1.setHorizontalTextPosition(JLabel.CENTER); 
     label1.setVerticalTextPosition(JLabel.CENTER); 
     add(label1); 

     // 

     JLabel label2 = new JLabel(new ColorIcon(Color.YELLOW, 200, 150)); 
     label2.setLayout(new BoxLayout(label2, BoxLayout.Y_AXIS)); 
     add(label2); 

     JLabel text = new JLabel("More Control"); 
     text.setAlignmentX(JLabel.CENTER_ALIGNMENT); 
     label2.add(Box.createVerticalGlue()); 
     label2.add(text); 
     label2.add(Box.createVerticalStrut(10)); 

     // 

     JLabel label3 = new JLabel(new ColorIcon(Color.GREEN, 200, 150)); 
     label3.setLayout(new GridBagLayout()); 
     add(label3); 

     JLabel text3 = new JLabel(); 
     text3.setText("<html><center>Text<br>over<br>Image<center></html>"); 
     text3.setLocation(20, 20); 
     text3.setSize(text3.getPreferredSize()); 
     label3.add(text3); 

     // 

     JLabel label4 = new JLabel(new ColorIcon(Color.CYAN, 200, 150)); 
     add(label4); 

     JTextPane textPane = new JTextPane(); 
     textPane.setText("Add some text that will wrap at your preferred width"); 
     textPane.setEditable(false); 
     textPane.setOpaque(false); 
     SimpleAttributeSet center = new SimpleAttributeSet(); 
     StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER); 
     StyledDocument doc = textPane.getStyledDocument(); 
     doc.setParagraphAttributes(0, doc.getLength(), center, false); 
     textPane.setBounds(20, 20, 75, 100); 
     label4.add(textPane); 
    } 

    public static class ColorIcon implements Icon 
    { 
     private Color color; 
     private int width; 
     private int height; 

     public ColorIcon(Color color, int width, int height) 
     { 
      this.color = color; 
      this.width = width; 
      this.height = height; 
     } 

     public int getIconWidth() 
     { 
      return width; 
     } 

     public int getIconHeight() 
     { 
      return height; 
     } 

     public void paintIcon(Component c, Graphics g, int x, int y) 
     { 
      g.setColor(color); 
      g.fillRect(x, y, width, height); 
     } 
    } 

    private static void createAndShowUI() 
    { 
     JFrame frame = new JFrame("LabelImageText"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(new LabelImageText()); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) 
    { 
     EventQueue.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       createAndShowUI(); 
      } 
     }); 
    } 
} 
+0

흥미 롭다면 JLabel을 컨테이너로 사용하고 있습니다. – mKorbel

관련 문제