是否有可能添加多個(gè)GlassPane處理單一JFrame,或者我必須使用不舒服LayeredPane與Opacity屬性。我已經(jīng)附上了一些代碼,該代碼顯示了我想做什么(由@camickr提供)。import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;public class MultiplayGlassPane { private static final long serialVersionUID = 1L; private JFrame frame = new JFrame("frameTitle"); private JPanel fPanel = new JPanel(); private Random random = new Random(); private final static Border MESSAGE_BORDER = new EmptyBorder(10, 10, 10, 10); private JLabel message = new JLabel(); private ArrayList<Star> stars = new ArrayList<Star>(); public MultiplayGlassPane() { MyGlassPane glass = new MyGlassPane(); for (int i = 0; i < 35; i++) { Star star = new Star(new Point(random.nextInt(580), random.nextInt(550))); star.setColor(Color.orange); star.setxIncr(-3 + random.nextInt(7)); star.setyIncr(-3 + random.nextInt(7)); glass.add(star); } frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(glass, BorderLayout.CENTER); frame.setLocation(20, 20); frame.pack(); frame.setVisible(true); DisabledGlassPane1 glassPane = new DisabledGlassPane1(); JRootPane rootPane = SwingUtilities.getRootPane(frame); rootPane.setGlassPane(glassPane); glassPane.activate(""); } private class MyGlassPane extends JLabel { private static final long serialVersionUID = 1L; private ArrayList<Star> stars = new ArrayList<Star>(); private javax.swing.Timer timer = new javax.swing.Timer(20, new ActionListener() {
在根容器中分層放置多個(gè)GlassPane
哆啦的時(shí)光機(jī)
2019-11-03 08:04:33