我想定制JLabel的边框,让其显示为菱形<>,请问如何实现?
解决方案 »
- 使用URLConnection获取InputStream失败
- java点击帮助打开文本文件?
- [结帖练习帖,21点整结帖]随便讲讲java中Random的用法
- 以符合OO的方式,规划设计出身份证的数据结构
- socket 多线程 (3000条以上时出现java.net.ConnectException: Connection timed out: connect
- 请专家帮忙!将下面的js改为农历提醒
- 200分求助,升级mysql驱动到3.1.7设置字符编码没有任何作用了!!!!
- 问一个关于 static 有点迷惑的问题。
- 为什么在JDK执行这个收邮件程序会出错的??
- 请问JAVA与VB、DELPHI的区别?
- 一个ITERATOR问题
- 1==1.0?
label.setBorder(BorderFactory.createLineBorder(Color.****));
> label.setBorder(BorderFactory.createLineBorder(Color.****));
我的要求可没这么简单。
package test;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;public class TestJLable extends JFrame {
private static final long serialVersionUID = 1L; public static void main(String[] args) {
new TestJLable();
} public TestJLable() {
init();
} private void init() {
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(getCenterPanel(), BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
this.setVisible(true);
} private JPanel getCenterPanel() {
JPanel panel = new JPanel();
JLabel lable = new MyLabel("Test");
panel.setLayout(new BorderLayout());
lable.setPreferredSize(new Dimension(100, 100));
panel.add(lable, BorderLayout.CENTER);
return panel;
} class MyLabel extends JLabel {
private static final long serialVersionUID = 1L; public MyLabel(String text) {
super(text);
} @Override
public void paint(Graphics g) {
super.paint(g);
g.drawLine(this.getX(), this.getY() + this.getHeight() / 2, this.getX() + this.getWidth() / 2, this.getY());
g.drawLine(this.getX() + this.getWidth() / 2, this.getY(), this.getX() + this.getWidth(), this.getY() + this.getHeight() / 2);
g.drawLine(this.getX(), this.getY() + this.getHeight() / 2, this.getX() + this.getWidth() / 2, this.getY() + this.getHeight());
g.drawLine(this.getX() + this.getWidth() / 2, this.getY() + this.getHeight(), this.getX() + this.getWidth(), this.getY() + this.getHeight() / 2);
}
}
}
但自己绘制的线不太好看。