【发布时间】:2013-11-29 04:37:21
【问题描述】:
我正在编写一个需要输入的程序,但输入字段非常相似(除了名称之外,它们基本上是相同的)。在下面粘贴的代码中,我只显示了前两个 JPanel 的代码,但总共有 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);
【问题讨论】:
-
创建
SemesterPanel类并让构造函数之一接受int参数。 -
这就是我的想法,但是,如果我这样做,它不会将所有面板命名为相同的东西吗?如果它这样做了,编译器不会因为我将相同的变量声明为各种事物而吓坏了吗?
-
定义一个构造函数
SemesterPanel,将您要分配给组件的名称作为参数。
标签: java swing methods jframe jpanel