2

JLabel を拡張して 3D 境界線を描画する方法と、丸い境界線を描画する方法があることは知っていますが、両方を取得するにはどうすればよいでしょうか? これが私のコードです

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);
4

2 に答える 2

3

LineBorder丸みを帯びた角または のバリエーションで使用しTextBubbleBorderます。

于 2012-06-29T09:46:31.597 に答える
1

次のコードを参照して、Round Corner 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);
    }
}
于 2012-06-29T09:57:13.310 に答える