为什么我的JButton不会从单独的类添加JPanel?

时间:2015-11-05 23:16:51

标签: java swing jpanel

我正在尝试将另一个类中的另一个JPanel添加到我的主JPanel中。生成一个随机数,如果它是某个值,它将导入一个带有电影信息的新面板到我的主面板中进行显示。当我点击我的按钮时,我不确定为什么我的面板没有显示。

public class NetflixFrame extends JFrame {

public JButton button;

public NetflixFrame() {
    super ("App");

    MovieSuggestion port = new MovieSuggestion();

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(new Dimension(800,800));

    button = new JButton("Start");

    JPanel primary = new JPanel();
    primary.setBackground(Color.GREEN);
    primary.setPreferredSize(new Dimension(800,800));
    primary.add(button);

    button.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            int score1 = (int )(Math.random() * 11 + 1);

            if(score1<=10) {
                port.Panel1();
            }
        }
    });

    add(primary);
    setVisible(true);
}
  }

要添加的小组:

public class MovieSuggestion extends JFrame{

public static Component Panel1() {

    ImageIcon image = new ImageIcon("./src/Hook.jpg");

    JPanel first = new JPanel();
    first.setPreferredSize(new Dimension(250,200));
    first.setBackground(Color.GREEN);
    JLabel imageLabel = new JLabel("Favorite Movie:", image, SwingConstants.CENTER);
    imageLabel.setHorizontalTextPosition(SwingConstants.CENTER);
    imageLabel.setVerticalTextPosition(SwingConstants.TOP);
    imageLabel.setFont(new Font("Times New Roman", Font.PLAIN, 20));
    first.add(imageLabel, BorderLayout.WEST);

    return first;

}

1 个答案:

答案 0 :(得分:1)

您正在呼叫$file['name'] = user-directory并返回$file['link'] = user,但您没有对其进行任何操作。

如果您想将其显示在主port.Panel1()中,则需要将返回的JPanel添加到主JPanel

将其放入JPanel声明:JPanel