2012-06-29 31 views
2

我知道有一種方法可以擴展JLabel繪製3D邊框和繪製圓形邊框的方法,但是如何獲得這兩種邊框?這裏是我的代碼如何在Java中製作3D圓角JLabel?

protected void paintComponent(Graphics g) { 
    g.setColor(getBackground()); 
    g.fillRoundRect(0, 0, getWidth()-1, getHeight()-1, 25, 25); 
    g.fill3DRect(10, 10, 30, 30, true); 
    super.paintComponent(g); 
+1

沒有你的代碼不能正常工作?它顯示了什麼? –

+0

因爲如果使用'setBorder()',那麼您將在下面的答案中看到'JLabel.setBorder()'的更多成功,因爲如果使用'setBorder()',那麼面板可以在其容器中調整其大小。 – Enwired

回答

1

你參考這個代碼來創建圓角的JLabel:

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

public class RoundedLineBorder extends JPanel { 

    public RoundedLineBorder() { 
     super(true); 
    setLayout(new BorderLayout()); 

     JLabel label = new JLabel("Rounded Corners"); 

     label.setHorizontalAlignment(JLabel.CENTER); 

    LineBorder line = new LineBorder(Color.blue, 2, true); 

     label.setBorder(line); 

     add(label, BorderLayout.CENTER); 
    } 

    public static void main(String s[]) { 
     JFrame frame = new JFrame("Rounded Line Border"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(500, 200); 
     frame.setContentPane(new RoundedLineBorder()); 
     frame.setVisible(true); 
    } 
}