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

📄 spotlightdemo.java

📁 oraily的Swing hacks code
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import javax.swing.*;import javax.swing.border.*;public class SpotlightDemo extends JFrame{    private SpotlightPanel glassPane;    private JComponent[] books;    public SpotlightDemo()    {		super("Spotlight Demo");		glassPane = new SpotlightPanel(true);		this.setGlassPane(glassPane);        Container c = new GradientPanel();        setContentPane(c);		c.setLayout(new BorderLayout());        JPanel headerPanel = new JPanel(new BorderLayout());        HeaderPanel header = new HeaderPanel();        headerPanel.add(BorderLayout.NORTH, header);        headerPanel.add(BorderLayout.SOUTH, new JSeparator(JSeparator.HORIZONTAL));        c.add(BorderLayout.NORTH, headerPanel);        JPanel booksPanel = new GradientPanel();        booksPanel.setOpaque(false);        booksPanel.setLayout(new GridLayout(2, 3));        booksPanel.setBorder(new EmptyBorder(6, 0, 0, 0));        createBooks(booksPanel);        c.add(BorderLayout.CENTER, booksPanel);        JPanel searchPanel = new JPanel();        searchPanel.setOpaque(false);        JLabel label = new JLabel("Search for books:");        searchPanel.add(label);        JTextField searchField = new JTextField(12);        searchField.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent evt)            {                String text = ((JTextField) evt.getSource()).getText();                if ("sci-fi".equals(text))                    createSciFiSpots();                else if ("books".equals(text))                    createSpotsForAll();                else if ("pratchett".equals(text))                    createPratchettSpots();                else if ("adams".equals(text))                    createAdamsSpots();            }        });        searchPanel.add(searchField);        c.add(BorderLayout.SOUTH, searchPanel);        pack();        setResizable(false);		setLocationRelativeTo(null);        setDefaultCloseOperation(EXIT_ON_CLOSE);    }    private void createSpotsForAll()    {        for (int i = 0; i < 6; i++)        {            addSpotForBook(i);        }    }    private void createSciFiSpots()    {        addSpotForBook(0);        for (int i = 3; i < 6; i++)        {            addSpotForBook(i);        }    }    private void createAdamsSpots()    {        for (int i = 3; i < 6; i++)        {            addSpotForBook(i);        }    }    private void createPratchettSpots()    {        addSpotForBook(2);    }    private void addSpotForBook(int i)    {        Point p = new Point(books[i].getLocation());        SwingUtilities.convertPointToScreen(p, books[i].getParent());        SwingUtilities.convertPointFromScreen(p, glassPane);        glassPane.addSpotlight(p.x - 4, p.y - 4, 96, 152);    }    private void createBooks(JPanel container)    {        books = new JComponent[6];        for (int i = 0; i < books.length; i++)        {            JPanel buttonPanel = new JPanel();            buttonPanel.setOpaque(false);            buttonPanel.add(books[i] = UIHelper.createLabel("", "cover" + (i + 1) + "_small_button"));            container.add(buttonPanel);        }    }    private static class GradientPanel extends JPanel    {        public void paintComponent(Graphics g)        {            super.paintComponent(g);            if (!isOpaque())            {                return;            }            int width  = getWidth();            int height = getHeight();                Graphics2D g2 = (Graphics2D) g;                Paint storedPaint = g2.getPaint();            g2.setPaint(new GradientPaint(0, 0, Color.WHITE, width, height, new Color(200, 200, 200)));            g2.fillRect(0, 0, width, height);            g2.setPaint(storedPaint);        }    }    public static void main(String[] args)    {        SpotlightDemo demo = new SpotlightDemo();        demo.setVisible(true);    }}

⌨️ 快捷键说明

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