我有一个像
这样的JFrame扩展类public class MyClass extends JFrame implements ActionListener {}
在这里,我有3个JLayeredPane
喜欢;
JLayeredPane layera = new JLayeredPane();
JLayeredPane layera = new JLayeredPane();
JLayeredPane layera = new JLayeredPane();
我有一个构造函数,我在其中添加组件,如;
MyClass(){
layera.add(buttona);
layerb.add(buttonb);
layerc.add(buttonc)
}
所有图层都具有相同的父JFrame高度和宽度,以便填充框架并完全遮盖其他图层。
我将所有图层一次添加到框架中。将有一个带按钮的最顶层(layera),其他层位于该层下方,对用户不可见。当用户单击该层中的按钮时,应该向用户显示包含按钮的layerb(隐藏layera和buttona)。当用户点击该按钮时,他应该获得layerc和buttonc。再次,如果用户点击它,他应该得到layera和buttona。
我已将所有图层设置为不透明,以便隐藏其他图层。
整个代码可能看起来像;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyClass extends JFrame implements ActionListener {
JLayeredPane layera = new JLayeredPane();
JLayeredPane layerb = new JLayeredPane();
JLayeredPane layerc = new JLayeredPane();
JButton buttona = new JButton("buttona");
JButton buttonb = new JButton("buttonb");
JButton buttonc = new JButton("buttonc");
MyClass(){
layera.setBounds(0,0,100,100);
layerb.setBounds(0,0,100,100);
layerc.setBounds(0,0,100,100);
buttona.setBounds(30,30,40,30);
buttonb.setBounds(30,30,40,30);
buttonc.setBounds(30,30,40,30);
layera.add(buttona);
layerb.add(buttonb);
layerc.add(buttonc);
layera.setOpaque(true);
layerb.setOpaque(true);
layerc.setOpaque(true);
add(layera);
add(layerb);
add(layerc);
setSize(100,100);
setLayout(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
flag = 0;
String name = e.getActionCommand();
if(name.equals("buttona")){
//show layerb
}else if(name.equals("buttonb")){
//show layerc
}else{
//show layera
}
}
public static void main(String[] args) {
new MyClass();
}
}
我该怎么做?