我試圖在兩個不同的面板上使用oo方法添加標籤。但是當我在我的主類中創建面板時,他們無法在我的驅動程序類中看到。我剛開始學習oo概念。如果我在我的驅動程序類中實例化面板,它可以工作,但不是當我在主類中實例化時,這是我被告知的方式。在java中構建一個類,向兩個獨立面板gui,驅動程序類和主類添加標籤
主類
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class borderMain {
public static void main(String[] args) {
JFrame frame = new JFrame("Border Layout");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
borderpanel p1 = new borderpanel();
borderpanel p2 = new borderpanel();
frame.getContentPane().add(p1, BorderLayout.NORTH);
frame.getContentPane().add(p2, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
}
驅動講座當我做p1.add(lbl1);
這是我得到
import java.awt.*;
import javax.swing.*;
public class borderpanel extends JPanel {
private JLabel lbl1, lbl2, lbl3;
private JTextField txt1;
public borderpanel(){
lbl1 = new JLabel("Hello");
lbl2 = new JLabel("Hi");
lbl3 = new JLabel("Hey");
txt1 = new JTextField("Hello");
p1.add(lbl1);
p2.add(lbl2);
p1.add(lbl3);
p2.add(txt1);
}
}
我想你''this.add',作爲'borderpanel'(類名爲'Borderpanel'作爲命名約定)作爲你的'borderpanel'是你正在使用的實際'JPanel'。 – SomeJavaGuy
請澄清。你是否試圖將所有創建的'JLabel'和'JTextField'對象添加到'borderpanel'的兩個實例?或者將'lbl1'和'lbl2'添加到'borderpanel''p1'和'lbl3'和'txt1'到另一個'borderpanel''p2'。在這兩種情況下,你現在正在做的事情都是行不通的,因爲'p1'和'p2'不存在於你試圖訪問它們的範圍中。另外,類應該以'CamelCase'開頭,例如大寫字母。 'BorderPanel'和'BorderMain' –
@ d.j.brown我正在嘗試將lbl1,lbl2添加到borderpanel p1,將其他添加到p2。我應該在borderpanel()類中實例化p1和p2 – norskdreamer