⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layeredpanedemo.java

📁 高等院校计算机应用技术硕士研究生课程,高级计算机网络程序设计实例子代码,GUI部分.
💻 JAVA
字号:
import javax.swing.*;import javax.swing.border.*;import javax.accessibility.*;import java.awt.*;import java.awt.event.*;public class LayeredPaneDemo extends JFrame {    //字符串数组和颜色数组    private String[] layerStrings = { "Yellow (0)", "Magenta (1)",                                       "Cyan (2)", "Red (3)",                                       "Green (4)" };    private Color[] layerColors = { Color.yellow, Color.magenta,                                     Color.cyan, Color.red,                                    Color.green };    //    private JLayeredPane layeredPane;    private JLabel dukeLabel;    public LayeredPaneDemo()        {        super("LayeredPaneDemo");        //创建一个图标        final ImageIcon icon = new ImageIcon("dukeWaveRed.gif");        //创建一个layeredPane        layeredPane = new JLayeredPane();        //设置layeredPane的大小        layeredPane.setPreferredSize(new Dimension(300, 310));        //设置边界类型        layeredPane.setBorder(BorderFactory.createTitledBorder(                                    "Move the Mouse to Move Duke"));                                            //添加鼠标移动事件        //鼠标移动,图标也跟着移动        layeredPane.addMouseMotionListener(new MouseMotionAdapter()         {            final int XFUDGE = 40;            final int YFUDGE = 57;            public void mouseEntered(MouseEvent e)             {                dukeLabel.setLocation(e.getX()-XFUDGE, e.getY()-YFUDGE);            }            public void mouseMoved(MouseEvent e)             {                dukeLabel.setLocation(e.getX()-XFUDGE, e.getY()-YFUDGE);            }        });        //创建一个点实例        Point origin = new Point(10, 20);                int offset = 35;        //将label添加入layeredPane        for (int i = 0; i < layerStrings.length; i++)         {            JLabel label = createColoredLabel(layerStrings[i],                                              layerColors[i], origin);            //将label加入不同的层            layeredPane.add(label, new Integer(i));              origin.x += offset;            origin.y += offset;        }        //创建图表        dukeLabel = new JLabel(icon);        dukeLabel.setBounds(15, 225,                             icon.getIconWidth(),                            icon.getIconHeight());        layeredPane.add(dukeLabel, new Integer(2), 0);        //绘制GUI的界面        Container contentPane = getContentPane();        contentPane.setLayout(new BoxLayout(contentPane,                                            BoxLayout.Y_AXIS));        contentPane.add(Box.createRigidArea(new Dimension(0, 10)));        //添加控制面板        contentPane.add(createControlPanel());        contentPane.add(Box.createRigidArea(new Dimension(0, 10)));        contentPane.add(layeredPane);    }    private JLabel createColoredLabel(String text, Color color,Point origin)     {        JLabel label = new JLabel(text);        label.setVerticalAlignment(JLabel.TOP);        label.setHorizontalAlignment(JLabel.CENTER);        label.setOpaque(true);        label.setBackground(color);        label.setForeground(Color.black);        label.setBorder(BorderFactory.createLineBorder(Color.black));        label.setBounds(origin.x, origin.y, 140, 140);        return label;    }    private JPanel createControlPanel()     {        final JCheckBox onTop = new JCheckBox("Top Position in Layer");        onTop.setSelected(true);        onTop.addActionListener(new ActionListener()         {            public void actionPerformed(ActionEvent e)             {                if (onTop.isSelected())                    layeredPane.moveToFront(dukeLabel);                else                    layeredPane.moveToBack(dukeLabel);            }        });        final JComboBox layerList = new JComboBox(layerStrings);        layerList.setSelectedIndex(2);            layerList.addActionListener(new ActionListener ()         {            public void actionPerformed(ActionEvent e)             {            	                int position = onTop.isSelected() ? 0 : 1;                layeredPane.setLayer(dukeLabel,                                     layerList.getSelectedIndex(),                                     position);            }        });                JPanel controls = new JPanel();        controls.add(layerList);        controls.add(onTop);        controls.setBorder(BorderFactory.createTitledBorder(                                 "Choose Duke's Layer and Position"));        return controls;    }    public static void main(String[] args)     {        JFrame frame = new LayeredPaneDemo();        frame.addWindowListener(new WindowAdapter()         {            public void windowClosing(WindowEvent e)             {                System.exit(0);            }        });        frame.pack();        frame.setVisible(true);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -