该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
public class Test{
public static void main(String[] args) throws Exception{
final JFrame jf = new JFrame("Test");
final JLabel jl = new JLabel();
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent event){
Object src = event.getSource();
if (src == jf){
Graphics g = jl.getGraphics();
g.setColor(Color.RED);
g.drawLine(0, 0, 200, 200);
}
}
}, AWTEvent.PAINT_EVENT_MASK);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(400, 300);
jf.setLocationRelativeTo(null);
jf.add(jl);
jf.setVisible(true);
}
}
完全没有继承JFrame和JLabel实现组件绘制,方法就是监听重绘事件并获取组件的Graphics对象来进行绘制。
其实效果似乎比较差……