我正在編寫一個需要輸入的程序,但輸入字段非常相似(基本上除名稱外,它們是相同的)。在下面粘貼的代碼中,我只顯示了前兩個JPanel的代碼,但總共有7個代碼,而且,我的代碼目前正在設置,我只重複了7次代碼。但是,我覺得應該有一種方法來編寫一個方法,然後我可以簡單地調用該方法7次。那可能嗎?我會怎麼做?我需要具有不同名稱的面板才能將它們分別添加到我的JFrame中。在方法中調用JPanel並將其添加到JFrame中?
我想我要問的是:如何在一個方法中調用非常相似的JPanel,以便在調用該方法時將它們添加到JFrame中。我是Java的完全noob,這是我的第一個大項目。感謝您的任何幫助,您可以提供。
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'參數。 –
這就是我的想法,但如果我這樣做,是不是所有的面板都是同一個東西?如果這樣做,編譯器會不會因爲我具有相同的變量而聲名狼借? – TheFaceOfBoe
使用要分配給組件的名稱作爲參數定義構造函數「SemesterPanel」。 – Prasad