Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 清理嵌套的J面板_Java_Swing_Layout_Jpanel_Layout Manager - Fatal编程技术网

Java 清理嵌套的J面板

Java 清理嵌套的J面板,java,swing,layout,jpanel,layout-manager,Java,Swing,Layout,Jpanel,Layout Manager,为你们重建了SCCE 我的目标是 一般的想法是,单击菜单的标题栏(右侧)将可折叠(设置为“可见”为“假”)与其关联的内容窗格: 性别面板折叠性别面板折叠身体 赛车面板\u BG折叠赛车面板\u车身 类面板折叠类面板体 基本统计面板折叠基本统计面板体 优点面板\u背景折叠优点面板\u主体 你明白了吗 另一件困扰我的事情是身体顶部的巨大空间和它的内容 梯度条式img源 import java.awt.BorderLayout; import java.awt.Color; import java

为你们重建了SCCE

我的目标是

一般的想法是,单击菜单的标题栏(右侧)将可折叠(设置为“可见”为“假”)与其关联的内容窗格:
性别面板折叠性别面板折叠身体
赛车面板\u BG折叠赛车面板\u车身
类面板折叠类面板体
基本统计面板折叠基本统计面板体
优点面板\u背景折叠优点面板\u主体

你明白了吗

另一件困扰我的事情是身体顶部的巨大空间和它的内容


梯度条式img源

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.*;

public class JaGCharCreation  {

    //set inital size of window
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    int initalWidth = (int) screenSize.width - 50;
    int initalHeight = (int) screenSize.height - 50;
    JPanel gender_panel_body;
    GridBagConstraints gbc;
    JLabel viewdata_gender = new JLabel("gender");
    ImageIcon BGicon = new ImageIcon("parchmentTall.jpg");
    Image img1 = BGicon.getImage();

    public static void main(String[] args) {
        new JaGCharCreation ();
    }

    //set up thread safe invoking for GUI
    public JaGCharCreation () {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new TestPane());
                frame.pack();
                //frame.setLocationRelativeTo(null);
                frame.setVisible(true);
                // Give the frame an initial size.
                frame.setSize(initalWidth, initalHeight);
            }
        });
    }

    //main panel to hold all others
    public class TestPane extends JPanel {
        public TestPane() {
            setLayout(new GridLayout(0, 2));
            add(createLeftPane());
            add(createRightPane());
        }//end of class for master frame

/////////////////////////////////Left Panel Nest Begin//////////////////////////////////////////////////////////////
        protected JPanel createLeftPane() {
        img1 = img1.getScaledInstance(initalWidth/2, initalHeight, java.awt.Image.SCALE_SMOOTH);
        final ImageIcon BGiconSM = new ImageIcon(img1);

            JPanel panel = new JPanel(new BorderLayout())                           {
                            protected void paintComponent(Graphics g)
                                {
                                //  Dispaly image at full size
                                g.drawImage(BGiconSM.getImage(), 0, 0, null);
                                super.paintComponent(g);
                                }
                            };
            panel.setOpaque( false );
            panel.setBorder(new EmptyBorder(35, 80, 35, 80));
            //panel.setBackground(Color.RED);
            return  panel;
        }//end left pane
/////////////////////////////////Left Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Right Panel Nest Begin//////////////////////////////////////////////////////////////
        protected JPanel createRightPane() {
            img1 = img1.getScaledInstance(initalWidth/2, initalHeight, java.awt.Image.SCALE_SMOOTH);
            final ImageIcon BGiconSM = new ImageIcon(img1);
            JPanel content = new JPanel(new GridBagLayout());
            content.setOpaque(false);

            JPanel panel = new JPanel(new BorderLayout())                           {
                            protected void paintComponent(Graphics g)
                                {
                                //  Dispaly image at full size
                                g.drawImage(BGiconSM.getImage(), 0, 0, null);
                                super.paintComponent(g);
                                }
                            };
            panel.setOpaque( false );
            panel.setBorder(new EmptyBorder(35, 80, 35, 80));
            //panel.setBackground(Color.BLUE);

            //set up our image for the title bars
            ImageIcon icon = new ImageIcon("GradientDetail.png");
            Image img = icon.getImage();
            img = img.getScaledInstance(initalWidth/2, 40, java.awt.Image.SCALE_SMOOTH);
            final ImageIcon iconSM = new ImageIcon(img);

/////////////////////////////////Gender Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel gender_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            gender_panel_BG.setOpaque( false );

            JLabel gender_panel_label = new JLabel("Gender");
            gender_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            gender_panel_label.setForeground(Color.white);
            gender_panel_label.setOpaque(false);

            gender_panel_body = new JPanel(new GridLayout(1, 3));
            gender_panel_body.setBackground(Color.WHITE);

            gender_panel_BG.add(gender_panel_label, BorderLayout.NORTH);

            JPanel gender_panel = new JPanel(new GridLayout(2, 1));
            //gender_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //gender_panel.setBackground(Color.GREEN);
            gender_panel.setOpaque(false);
            gender_panel.add(gender_panel_BG);
            gender_panel.add(gender_panel_body);

            MouseAdapter gender = new MouseAdapterMod(){
           public void mousePressed(MouseEvent e) {
                   //System.out.println(e.getSource());
                   System.out.println("A mouse was pressed");
                gender_panel_body.setVisible(!gender_panel_body.isVisible());
           }//end of mousePressed(MouseEvent e)
        };

        // Create radio buttons and add them to content pane.
        JRadioButton g1 = new JRadioButton("Male");
        g1.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                    viewdata_gender.setText("Gender: Male");
                 }//action perfomed;
            });//g1 add action listener
        gender_panel_body.add(g1);

        JRadioButton g2 = new JRadioButton("Female");
        g2.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                    viewdata_gender.setText("Gender: Female");
                 }//action perfomed;
            });//g2 add action listener
        gender_panel_body.add(g2);

        JRadioButton g3 = new JRadioButton("<Unknown>");
        g3.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                    viewdata_gender.setText("Gender: <Unknown>");
                 }//action perfomed;
            });//g3 add action listener
        gender_panel_body.add(g3);

        // Define a button group.
        ButtonGroup genderButtons = new ButtonGroup();
        genderButtons.add(g1);
        genderButtons.add(g2);
        genderButtons.add(g3);

            gender_panel_BG.addMouseListener(gender);
            content.add(gender_panel, gbc);
/////////////////////////////////Gender Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Race Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel race_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            race_panel_BG.setOpaque( false );

            JLabel race_panel_label = new JLabel("Race");
            race_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            race_panel_label.setForeground(Color.white);
            race_panel_label.setOpaque(false);

            JPanel race_panel_body = new JPanel(new GridLayout(5, 8));
            race_panel_body.setBackground(Color.WHITE);

            race_panel_BG.add(race_panel_label, BorderLayout.NORTH);

            JPanel race_panel = new JPanel(new GridLayout(2, 1));
            //race_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //race_panel.setBackground(Color.GREEN);
            race_panel.setOpaque(false);
            race_panel.add(race_panel_BG);
            race_panel.add(race_panel_body);

            for (int i=0; i <= 60; i++){
                ImageIcon RCicon = new ImageIcon("headshot.jpg");
                Image RCimg = RCicon.getImage();
                RCimg = RCimg.getScaledInstance(40, 40, java.awt.Image.SCALE_SMOOTH);
                final ImageIcon RCiconSM = new ImageIcon(RCimg);
                JButton button = new JButton(RCiconSM);
                button.setBorder(BorderFactory.createEmptyBorder());
                button.setContentAreaFilled(false);
                race_panel_body.add(button);
            };//for loop

            MouseAdapter race = new MouseAdapterMod();
            race_panel_body.addMouseListener(race);
            content.add(race_panel, gbc);
/////////////////////////////////Race Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Class Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel class_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            class_panel_BG.setOpaque( false );

            JLabel class_panel_label = new JLabel("Class");
            class_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            class_panel_label.setForeground(Color.white);
            class_panel_label.setOpaque(false);

            JPanel class_panel_body = new JPanel(new GridLayout(5, 8));
            class_panel_body.setBackground(Color.WHITE);

            class_panel_BG.add(class_panel_label, BorderLayout.NORTH);

            JPanel class_panel = new JPanel(new GridLayout(2, 1));
            //class_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //class_panel.setBackground(Color.GREEN);
            class_panel.setOpaque(false);
            class_panel.add(class_panel_BG);
            class_panel.add(class_panel_body);

            for (int g=0; g <= 50; g++){
                ImageIcon CCicon = new ImageIcon("headshot.jpg");
                Image CCimg = CCicon.getImage();
                CCimg = CCimg.getScaledInstance(40, 40, java.awt.Image.SCALE_SMOOTH);
                final ImageIcon CCiconSM = new ImageIcon(CCimg);
                JButton cbutton = new JButton(CCiconSM);
                cbutton.setBorder(BorderFactory.createEmptyBorder());
                cbutton.setContentAreaFilled(false);
                class_panel_body.add(cbutton);
            };//for loop

            MouseAdapter cclass = new MouseAdapterMod();
            class_panel_body.addMouseListener(cclass);
            content.add(class_panel, gbc);
/////////////////////////////////Class Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Base Stats Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel base_stats_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            base_stats_panel_BG.setOpaque( false );

            JLabel base_stats_panel_label = new JLabel("Base Attributes");
            base_stats_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            base_stats_panel_label.setForeground(Color.white);
            base_stats_panel_label.setOpaque(false);

            JPanel base_stats_panel_body = new JPanel(new GridLayout(1, 2));
            base_stats_panel_body.setBackground(Color.WHITE);

            base_stats_panel_BG.add(base_stats_panel_label, BorderLayout.NORTH);

            JPanel base_stats_panel = new JPanel(new GridLayout(2, 1));
            //base_stats_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //base_stats_panel.setBackground(Color.GREEN);
            base_stats_panel.setOpaque(false);
            base_stats_panel.add(base_stats_panel_BG);
            base_stats_panel.add(base_stats_panel_body);

            MouseAdapter base_stats = new MouseAdapterMod();
            base_stats_panel_body.addMouseListener(base_stats);
            content.add(base_stats_panel, gbc);
/////////////////////////////////Base Stats Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Merits Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel merits_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            merits_panel_BG.setOpaque( false );

            JLabel merits_panel_label = new JLabel("Advantages and Disadvantages");
            merits_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            merits_panel_label.setForeground(Color.white);
            merits_panel_label.setOpaque(false);

            JPanel merits_panel_body = new JPanel(new BorderLayout());
            merits_panel_body.setBackground(Color.WHITE);

            merits_panel_BG.add(merits_panel_label, BorderLayout.NORTH);

            JPanel merits_panel = new JPanel(new GridLayout(2, 1));
            //merits_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //merits_panel.setBackground(Color.GREEN);
            merits_panel.setOpaque(false);
            merits_panel.add(merits_panel_BG);
            merits_panel.add(merits_panel_body);

            MouseAdapter merits = new MouseAdapterMod();
            merits_panel_body.addMouseListener(merits);
            content.add(merits_panel, gbc);
/////////////////////////////////Merits Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Group Panel Nest Begin//////////////////////////////////////////////////////////////
            JPanel viewData = new JPanel(new GridLayout(5, 1));
            viewData.add(gender_panel);
            viewData.add(race_panel);
            viewData.add(class_panel);
            viewData.add(base_stats_panel);
            viewData.add(merits_panel);

            panel.add(new JScrollPane(viewData));
            return panel;
/////////////////////////////////Group Panel Nest End//////////////////////////////////////////////////////////////
        }//end right pane
/////////////////////////////////Right Panel Nest End//////////////////////////////////////////////////////////////

        public class MouseAdapterMod extends MouseAdapter {
           // usually better off with mousePressed rather than clicked
           public void mousePressed(MouseEvent e) {
                   //System.out.println(e.getSource());
                   System.out.println("A mouse was pressed");
               if (e.getSource() == "gender_panel_BG"){
                gender_panel_body.setVisible(!gender_panel_body.isVisible());
               }//end of  if (e.getSource() == "gender")
           }//end of mousePressed(MouseEvent e)
        }//end of MouseAdapterMod extends MouseAdapter
    }//end master panel set
}//end master class
背景源

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.*;

public class JaGCharCreation  {

    //set inital size of window
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    int initalWidth = (int) screenSize.width - 50;
    int initalHeight = (int) screenSize.height - 50;
    JPanel gender_panel_body;
    GridBagConstraints gbc;
    JLabel viewdata_gender = new JLabel("gender");
    ImageIcon BGicon = new ImageIcon("parchmentTall.jpg");
    Image img1 = BGicon.getImage();

    public static void main(String[] args) {
        new JaGCharCreation ();
    }

    //set up thread safe invoking for GUI
    public JaGCharCreation () {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new TestPane());
                frame.pack();
                //frame.setLocationRelativeTo(null);
                frame.setVisible(true);
                // Give the frame an initial size.
                frame.setSize(initalWidth, initalHeight);
            }
        });
    }

    //main panel to hold all others
    public class TestPane extends JPanel {
        public TestPane() {
            setLayout(new GridLayout(0, 2));
            add(createLeftPane());
            add(createRightPane());
        }//end of class for master frame

/////////////////////////////////Left Panel Nest Begin//////////////////////////////////////////////////////////////
        protected JPanel createLeftPane() {
        img1 = img1.getScaledInstance(initalWidth/2, initalHeight, java.awt.Image.SCALE_SMOOTH);
        final ImageIcon BGiconSM = new ImageIcon(img1);

            JPanel panel = new JPanel(new BorderLayout())                           {
                            protected void paintComponent(Graphics g)
                                {
                                //  Dispaly image at full size
                                g.drawImage(BGiconSM.getImage(), 0, 0, null);
                                super.paintComponent(g);
                                }
                            };
            panel.setOpaque( false );
            panel.setBorder(new EmptyBorder(35, 80, 35, 80));
            //panel.setBackground(Color.RED);
            return  panel;
        }//end left pane
/////////////////////////////////Left Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Right Panel Nest Begin//////////////////////////////////////////////////////////////
        protected JPanel createRightPane() {
            img1 = img1.getScaledInstance(initalWidth/2, initalHeight, java.awt.Image.SCALE_SMOOTH);
            final ImageIcon BGiconSM = new ImageIcon(img1);
            JPanel content = new JPanel(new GridBagLayout());
            content.setOpaque(false);

            JPanel panel = new JPanel(new BorderLayout())                           {
                            protected void paintComponent(Graphics g)
                                {
                                //  Dispaly image at full size
                                g.drawImage(BGiconSM.getImage(), 0, 0, null);
                                super.paintComponent(g);
                                }
                            };
            panel.setOpaque( false );
            panel.setBorder(new EmptyBorder(35, 80, 35, 80));
            //panel.setBackground(Color.BLUE);

            //set up our image for the title bars
            ImageIcon icon = new ImageIcon("GradientDetail.png");
            Image img = icon.getImage();
            img = img.getScaledInstance(initalWidth/2, 40, java.awt.Image.SCALE_SMOOTH);
            final ImageIcon iconSM = new ImageIcon(img);

/////////////////////////////////Gender Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel gender_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            gender_panel_BG.setOpaque( false );

            JLabel gender_panel_label = new JLabel("Gender");
            gender_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            gender_panel_label.setForeground(Color.white);
            gender_panel_label.setOpaque(false);

            gender_panel_body = new JPanel(new GridLayout(1, 3));
            gender_panel_body.setBackground(Color.WHITE);

            gender_panel_BG.add(gender_panel_label, BorderLayout.NORTH);

            JPanel gender_panel = new JPanel(new GridLayout(2, 1));
            //gender_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //gender_panel.setBackground(Color.GREEN);
            gender_panel.setOpaque(false);
            gender_panel.add(gender_panel_BG);
            gender_panel.add(gender_panel_body);

            MouseAdapter gender = new MouseAdapterMod(){
           public void mousePressed(MouseEvent e) {
                   //System.out.println(e.getSource());
                   System.out.println("A mouse was pressed");
                gender_panel_body.setVisible(!gender_panel_body.isVisible());
           }//end of mousePressed(MouseEvent e)
        };

        // Create radio buttons and add them to content pane.
        JRadioButton g1 = new JRadioButton("Male");
        g1.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                    viewdata_gender.setText("Gender: Male");
                 }//action perfomed;
            });//g1 add action listener
        gender_panel_body.add(g1);

        JRadioButton g2 = new JRadioButton("Female");
        g2.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                    viewdata_gender.setText("Gender: Female");
                 }//action perfomed;
            });//g2 add action listener
        gender_panel_body.add(g2);

        JRadioButton g3 = new JRadioButton("<Unknown>");
        g3.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                    viewdata_gender.setText("Gender: <Unknown>");
                 }//action perfomed;
            });//g3 add action listener
        gender_panel_body.add(g3);

        // Define a button group.
        ButtonGroup genderButtons = new ButtonGroup();
        genderButtons.add(g1);
        genderButtons.add(g2);
        genderButtons.add(g3);

            gender_panel_BG.addMouseListener(gender);
            content.add(gender_panel, gbc);
/////////////////////////////////Gender Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Race Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel race_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            race_panel_BG.setOpaque( false );

            JLabel race_panel_label = new JLabel("Race");
            race_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            race_panel_label.setForeground(Color.white);
            race_panel_label.setOpaque(false);

            JPanel race_panel_body = new JPanel(new GridLayout(5, 8));
            race_panel_body.setBackground(Color.WHITE);

            race_panel_BG.add(race_panel_label, BorderLayout.NORTH);

            JPanel race_panel = new JPanel(new GridLayout(2, 1));
            //race_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //race_panel.setBackground(Color.GREEN);
            race_panel.setOpaque(false);
            race_panel.add(race_panel_BG);
            race_panel.add(race_panel_body);

            for (int i=0; i <= 60; i++){
                ImageIcon RCicon = new ImageIcon("headshot.jpg");
                Image RCimg = RCicon.getImage();
                RCimg = RCimg.getScaledInstance(40, 40, java.awt.Image.SCALE_SMOOTH);
                final ImageIcon RCiconSM = new ImageIcon(RCimg);
                JButton button = new JButton(RCiconSM);
                button.setBorder(BorderFactory.createEmptyBorder());
                button.setContentAreaFilled(false);
                race_panel_body.add(button);
            };//for loop

            MouseAdapter race = new MouseAdapterMod();
            race_panel_body.addMouseListener(race);
            content.add(race_panel, gbc);
/////////////////////////////////Race Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Class Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel class_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            class_panel_BG.setOpaque( false );

            JLabel class_panel_label = new JLabel("Class");
            class_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            class_panel_label.setForeground(Color.white);
            class_panel_label.setOpaque(false);

            JPanel class_panel_body = new JPanel(new GridLayout(5, 8));
            class_panel_body.setBackground(Color.WHITE);

            class_panel_BG.add(class_panel_label, BorderLayout.NORTH);

            JPanel class_panel = new JPanel(new GridLayout(2, 1));
            //class_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //class_panel.setBackground(Color.GREEN);
            class_panel.setOpaque(false);
            class_panel.add(class_panel_BG);
            class_panel.add(class_panel_body);

            for (int g=0; g <= 50; g++){
                ImageIcon CCicon = new ImageIcon("headshot.jpg");
                Image CCimg = CCicon.getImage();
                CCimg = CCimg.getScaledInstance(40, 40, java.awt.Image.SCALE_SMOOTH);
                final ImageIcon CCiconSM = new ImageIcon(CCimg);
                JButton cbutton = new JButton(CCiconSM);
                cbutton.setBorder(BorderFactory.createEmptyBorder());
                cbutton.setContentAreaFilled(false);
                class_panel_body.add(cbutton);
            };//for loop

            MouseAdapter cclass = new MouseAdapterMod();
            class_panel_body.addMouseListener(cclass);
            content.add(class_panel, gbc);
/////////////////////////////////Class Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Base Stats Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel base_stats_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            base_stats_panel_BG.setOpaque( false );

            JLabel base_stats_panel_label = new JLabel("Base Attributes");
            base_stats_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            base_stats_panel_label.setForeground(Color.white);
            base_stats_panel_label.setOpaque(false);

            JPanel base_stats_panel_body = new JPanel(new GridLayout(1, 2));
            base_stats_panel_body.setBackground(Color.WHITE);

            base_stats_panel_BG.add(base_stats_panel_label, BorderLayout.NORTH);

            JPanel base_stats_panel = new JPanel(new GridLayout(2, 1));
            //base_stats_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //base_stats_panel.setBackground(Color.GREEN);
            base_stats_panel.setOpaque(false);
            base_stats_panel.add(base_stats_panel_BG);
            base_stats_panel.add(base_stats_panel_body);

            MouseAdapter base_stats = new MouseAdapterMod();
            base_stats_panel_body.addMouseListener(base_stats);
            content.add(base_stats_panel, gbc);
/////////////////////////////////Base Stats Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Merits Panel Nest Begins//////////////////////////////////////////////////////////////
            JPanel merits_panel_BG = new JPanel(new BorderLayout())
                {
                protected void paintComponent(Graphics g)
                    {
                    //  Dispaly image at full size
                    g.drawImage(iconSM.getImage(), 0, 0, null);
                    super.paintComponent(g);
                    }
                };
            merits_panel_BG.setOpaque( false );

            JLabel merits_panel_label = new JLabel("Advantages and Disadvantages");
            merits_panel_label.setFont(new Font("Impact", Font.BOLD, 30));
            merits_panel_label.setForeground(Color.white);
            merits_panel_label.setOpaque(false);

            JPanel merits_panel_body = new JPanel(new BorderLayout());
            merits_panel_body.setBackground(Color.WHITE);

            merits_panel_BG.add(merits_panel_label, BorderLayout.NORTH);

            JPanel merits_panel = new JPanel(new GridLayout(2, 1));
            //merits_panel.setBorder(new EmptyBorder(0, 10, 0, 10));
            //merits_panel.setBackground(Color.GREEN);
            merits_panel.setOpaque(false);
            merits_panel.add(merits_panel_BG);
            merits_panel.add(merits_panel_body);

            MouseAdapter merits = new MouseAdapterMod();
            merits_panel_body.addMouseListener(merits);
            content.add(merits_panel, gbc);
/////////////////////////////////Merits Panel Nest End//////////////////////////////////////////////////////////////
/////////////////////////////////Group Panel Nest Begin//////////////////////////////////////////////////////////////
            JPanel viewData = new JPanel(new GridLayout(5, 1));
            viewData.add(gender_panel);
            viewData.add(race_panel);
            viewData.add(class_panel);
            viewData.add(base_stats_panel);
            viewData.add(merits_panel);

            panel.add(new JScrollPane(viewData));
            return panel;
/////////////////////////////////Group Panel Nest End//////////////////////////////////////////////////////////////
        }//end right pane
/////////////////////////////////Right Panel Nest End//////////////////////////////////////////////////////////////

        public class MouseAdapterMod extends MouseAdapter {
           // usually better off with mousePressed rather than clicked
           public void mousePressed(MouseEvent e) {
                   //System.out.println(e.getSource());
                   System.out.println("A mouse was pressed");
               if (e.getSource() == "gender_panel_BG"){
                gender_panel_body.setVisible(!gender_panel_body.isVisible());
               }//end of  if (e.getSource() == "gender")
           }//end of mousePressed(MouseEvent e)
        }//end of MouseAdapterMod extends MouseAdapter
    }//end master panel set
}//end master class
导入java.awt.BorderLayout;
导入java.awt.Color;
导入java.awt.EventQueue;
导入java.awt.GridBagConstraints;
导入java.awt.GridBagLayout;
导入java.awt.GridLayout;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JScrollPane;
导入javax.swing.UIManager;
导入javax.swing.UnsupportedLookAndFeelException;
导入javax.swing.border.EmptyBorder;
导入javax.swing.border.LineBorder;
导入java.awt.*;
导入javax.swing.*;
导入javax.swing.text.*;
导入java.awt.Graphics;
导入java.awt.Point;
导入java.awt.event.*;
公共类jagchar创建{
//设置窗口的初始大小
维度screenSize=Toolkit.getDefaultToolkit().getScreenSize();
int initalWidth=(int)screenSize.width-50;
int initalHeight=(int)screenSize.height-50;
JPanel性别问题小组机构;
gridbaggbc;
JLabel viewdata_gender=新JLabel(“gender”);
ImageIcon BGicon=新的ImageIcon(“parchamenttall.jpg”);
Image img1=BGicon.getImage();
公共静态void main(字符串[]args){
新的JaGCharCreation();
}
//为GUI设置线程安全调用
公共Jagchar创建(){
invokeLater(新的Runnable(){
@凌驾
公开募捐{
试一试{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(ClassNotFoundException |实例化Exception | IllegalacessException |不支持ookandfeelException ex){
}
JFrame=新JFrame(“测试”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(新的BorderLayout());
frame.add(newtestpane());
frame.pack();
//frame.setLocationRelativeTo(空);
frame.setVisible(true);
//给框架一个初始尺寸。
帧设置大小(初始宽度、初始高度);
}
});
}
//主面板用于容纳所有其他面板
公共类TestPane扩展了JPanel{
公共测试窗格(){
setLayout(新的GridLayout(0,2));
添加(createLeftPane());
添加(createRightPane());
}//主框架课程结束
/////////////////////////////////左面板嵌套开始//////////////////////////////////////////////////////////////
受保护的JPanel createLeftPane(){
img1=img1.getScaledInstance(initalWidth/2,initalHeight,java.awt.Image.SCALE\u平滑);
最终图像图标BGiconSM=新图像图标(img1);
JPanel panel=newjpanel(newborderlayout()){
受保护组件(图形g)
{
//显示全尺寸图像
g、 drawImage(BGiconSM.getImage(),0,0,null);
超级组件(g);
}
};
面板。设置不透明(假);
专家组命令(新的清空命令(35,80,35,80));
//面板.立根背景(颜色.红色);
返回面板;
}//左窗格结束
/////////////////////////////////左面板嵌套端//////////////////////////////////////////////////////////////
/////////////////////////////////右面板嵌套开始//////////////////////////////////////////////////////////////
受保护的JPanel createRightPane(){
img1=img1.getScaledInstance(initalWidth/2,initalHeight,java.awt.Image.SCALE\u平滑);
最终图像图标BGiconSM=新图像图标(img1);
JPanel content=newJPanel(newGridBagLayout());
content.set不透明(false);
JPanel panel=newjpanel(newborderlayout()){
受保护组件(图形g)
{
//显示全尺寸图像
g、 drawImage(BGiconSM.getImage(),0,0,null);
超级组件(g);
}
};
面板。设置不透明(假);
专家组命令(新的清空命令(35,80,35,80));
//面板.立根背景(颜色.蓝色);
//为标题栏设置我们的图像
ImageIcon=newImageIcon(“GradientDetail.png”);
Image img=icon.getImage();
img=img.getScaledInstance(initalWidth/2,40,java.awt.Image.SCALE\u平滑);
最终图像图标iconSM=新图像图标(img);
/////////////////////////////////性别问题小组开始工作//////////////////////////////////////////////////////////////
JPanel gender_panel_BG=新的JPanel(新的BorderLayout())
{
受保护组件(图形g)
{
//显示全尺寸图像
g、 drawImage(iconSM.getImage(),0,0,null);
超级组件(g);
}
};
性别面板背景设置不透明(假);
JLabel性别面板标签