您可以在titledBorder的标题中放置一个图标,例如以下代码:
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
public class TitledExample extends JPanel {
public TitledExample() {
super(true);
this.setLayout(new GridLayout(1, 1, 5, 5));
JLabel label = new JLabel("Titled Border");
label.setHorizontalAlignment(JLabel.CENTER);
TitledBorder titled = new TitledBorder("Image here ?? Title");
label.setBorder(titled);
add(label);
}
Run Code Online (Sandbox Code Playgroud)
谢谢,干杯
尝试子类化TitledBorder,并覆盖该paintBorder方法:
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
{
super.paintBorder(c, g, x, y, width, height);
// Now use the graphics context to draw whatever needed
g.drawImage(img, xImageOffset, yImageOffset, imgWidth, imgHeight, observer);
}
Run Code Online (Sandbox Code Playgroud)
不是绝对肯定这是完全正确的方法调用,但你明白了; 一旦您可以访问该Graphics对象,您可以绘制任何您需要的内容.
它可能不是你想要的,但可能是一个很好的Unicode™字形或两个.
附录:@ rhu的方法更可取,但我无法抗拒尝试这个:
TitledBorder titled = BorderFactory.createTitledBorder("\u2615");
titled.setTitleFont(new Font(Font.Dialog, Font.PLAIN, 32));
titled.setTitleColor(Color.blue);
label.setBorder(titled);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3381 次 |
| 最近记录: |