在方法中调用JPanel并将其添加到JFrame中?

时间:2013-11-29 04:37:21

标签: java swing methods jframe jpanel

我正在编写一个需要输入的程序,但输入字段非常相似(基本上除了名称之外它们是相同的)。在下面粘贴的代码中,我只显示了前两个JPanels的代码,但总共有7个,并且,我的代码当前设置的方式,我只重复代码7次。但是,我觉得应该有一种方法来编写一个方法,然后我可以简单地调用该方法7次。那可能吗?我该怎么办?我需要有不同名称的面板,以便将它们分别添加到我的JFrame中。

我想我要问的是:如何在方法中调用非常相似的JPanel,以便在调用该方法时将它们添加到JFrame中。我是Java的一个完整的菜鸟,这是我的第一个大项目。感谢您提供的任何帮助。

public GPACalculatorController(){
    setTitle("GPA Calculator");
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JPanel dataEntryPanel = new JPanel(new GridLayout(0,1));
    JPanel dataEntryPanelBorder = new JPanel(new BorderLayout());

    JPanel previousSemesterInstructions = new JPanel(new BorderLayout());
    previousSemesterInstructions.add(new JLabel("Previous Semesters:"), BorderLayout.WEST);

    dataEntryPanel.add(previousSemesterInstructions);

    JPanel semesterOnePanel = new JPanel(new FlowLayout());

    semesterOnePanel.add(new JLabel("Semester 1:"));
    semesterOnePanel.add(new JLabel("   GPA:"));
    semesterGPA = new JTextField(4);
    semesterOnePanel.add(semesterGPA);
    //semesterGPA.addActionListener(new SemesterGPAListener());
    semesterOnePanel.add(new JLabel("Credits:"));
    semesterCredits = new JTextField(2);
    semesterOnePanel.add(semesterCredits);
    //semesterCredits.addActionListener(new SemesterCreditsListener());
    dataEntryPanel.add(semesterOnePanel);

    JPanel semesterTwoPanel = new JPanel(new FlowLayout());
    semesterTwoPanel.add(new JLabel("Semester 2:"));
    semesterTwoPanel.add(new JLabel("   GPA:"));
    semesterGPA = new JTextField(4);
    semesterTwoPanel.add(semesterGPA);
    //semesterGPA.addActionListener(new SemesterGPAListener());
    semesterTwoPanel.add(new JLabel("Credits:"));
    semesterCredits = new JTextField(2);
    semesterTwoPanel.add(semesterCredits);
    //semesterCredits.addActionListener(new SemesterCreditsListener());
    dataEntryPanel.add(semesterTwoPanel);

1 个答案:

答案 0 :(得分:0)

创建一个类或可能的方法(函数),它接受一个参数来创建一个新的JPanel。 使用frameObject.setContentPane(panelObject) 根据您的要求将该面板添加到框架