?什么叫做点击这个panel???panel上面可以添加的事件监听你知道是什么么?如果是通过点击按钮而改变panel的话还可以实现,如下: class fram extends JFrame implements ActionListener { JButton jbt = new JButton("改变面板"); JButton jbt2 = new JButton("恢复面板"); JPanel pa = new JPanel(); fram(){ setLayout(null); pa.setBackground(Color.cyan); add(pa);
class fram extends JFrame implements ActionListener {
JButton jbt = new JButton("改变面板");
JButton jbt2 = new JButton("恢复面板");
JPanel pa = new JPanel();
fram(){
setLayout(null);
pa.setBackground(Color.cyan);
add(pa);
add(jbt);
jbt.setBounds(100,50,90,30);
jbt.addActionListener(this); add(jbt2);
jbt2.setBounds(100,105,90,30);
jbt2.addActionListener(this);
pa.setBounds(10,20,80,50);
this.setVisible(true);
this.setResizable(false);
this.setBounds(420,320,500,500);
}
public void actionPerformed( ActionEvent e){
if(e.getSource() == jbt){
pa.setBounds(0,0,100,500);
this.repaint();
}
else{
pa.setBounds(10,20,80,50);
this.repaint();
}
}
}
通过算法重绘其边框
使之出现“变形效果”
但是JPanel的底层事件是以矩形范围处理的
就是说即使你用一个梯形的图片也好,自己重绘也好
只是仅仅让这个JPanel看起来变了形而已,
它的实际存在区域任然是一个矩形
除非你重写JPanel的底层的一些东西不过这样对你的这个需求来说应该是够了
如果楼主还想解决透明的问题
建议用JLabel来代替JPanel
这样只要在JLabel上放上你需要的形状的图片就OK了
你想让它看起来像什么都可以
我知道你是什么意思了,现在不要用swing弄这些东西了,因为你工作后会发现有许多的东西,是基于javascript的一些类库,里面对于界面的设计很出色,到时候可以运用。顺便说一下,我以前对swing也很感兴趣,可是见了那些专门搞客户端的工具,发现用swing弄界面真的很不明智,swing也绝对不是java的精华所在