2014-06-22 102 views
0

我正在嘗試添加一些按鈕,以顯示來自另一個類中的方法的信息。我已經創建了一個Jpanel和2個子面板,並且我試圖從班級學生訪問該方法。現在我試圖在主面板中創建學生,並在子面板中添加按鈕。現在我知道它涉及點操作,但由於某些原因我無法找到正確的語法。將按鈕添加到子面板

的代碼,如果它有助於:

Master Panel 
import java.awt.*; 
import javax.swing.*; 
public class myJPanel extends JPanel 
{ 
public myJPanel() 
{ 
super(); 
GridLayout grid = new GridLayout(1,1); 
setLayout(grid); 
setBackground(Color.green); 
student st1 = new student("Dan", "Smith", 27); 
PanelLeft top = new PanelLeft(); 
PanelRight bottom = new PanelRight(); 
add(top); 
add(bottom); 
} 
} 

子面板1

import java.awt.*; 
import javax.swing.*; 
public class PanelLeft extends JPanel 
{ 
public PanelLeft() 
{ 
super(); 
GridLayout grid = new GridLayout(1,1); 
setLayout(grid); 
setBackground(Color.pink); 
JButton jb1 = new JButton(st1.getInfo()); 
add(jb1, "Center"); 
} 
} 

子面板2

import java.awt.*; 
import javax.swing.*; 
public class PanelRight extends JPanel 
{ 
public PanelRight() 
{ 
super(); 
GridLayout grid = new GridLayout(10,1); 
setLayout(grid); 
setBackground(Color.red); 
JButton jb1 = new JButton(st1.whatsUp()); 
JButton jb2 = new JButton(st1.whatsUp()); 
JButton jb3 = new JButton(st1.whatsUp()); 
JButton jb4 = new JButton(st1.whatsUp()); 
JButton jb5 = new JButton(st1.whatsUp()); 
JButton jb6 = new JButton(st1.whatsUp()); 
JButton jb7 = new JButton(st1.whatsUp()); 
JButton jb8 = new JButton(st1.whatsUp()); 
JButton jb9 = new JButton(st1.whatsUp()); 
JButton jb10 = new JButton(st1.whatsUp()); 
add(jb1); 
add(jb2); 
add(jb3); 
add(jb4); 
add(jb5); 
add(jb6); 
add(jb7); 
add(jb8); 
add(jb9); 
add(jb10); 
} 
} 

學生類

public class student 
{ 
String firstName; 
String lastName; 
int Age; 
double r; 
int myNumber; 
student(String a, String b, int x) 
{ 
    firstName = a; 
    lastName = b; 
    Age = x; 
} 
String getInfo() 

{ 

    return "NAME = "+firstName+ " "+lastName+" "+"Age = "+ Age; 
    } 
String whatsUp() 
{ 
    double r; 
    int myNumber; 
    String[] acts = new String[5]; 
    acts[0] = " is fishing"; 
    acts[1] = " is studying"; 
    acts[2] = " is running"; 
    acts[3] = "is interacting"; 
    acts[4] = "is talking"; 
    r = Math.random(); 
    myNumber = (int) (r * 5.0); 
      return (acts[myNumber]); 
} 
    } 

回答

1

主要問題是st1PanelRightPanelLeft中未定義。您需要傳遞的是要使用,例如student參考...

student st1 = new student("Dan", "Smith", 27); 
PanelLeft top = new PanelLeft(st1); 
PanelRight bottom = new PanelRight(st1); 

PanelLeft ...

public class PanelLeft extends JPanel 
{ 
    public PanelLeft (student st1) 
    { 
     //... 
     JButton jb1 = new JButton(st1.getInfo()); 

PanelRight ...

public class PanelRight extends JPanel 
{ 
    public PanelRight (student st1) 
    { 
     //... 
     JButton jb1 = new JButton(st1.whatsUp()); 
     JButton jb2 = new JButton(st1.whatsUp()); 
     JButton jb3 = new JButton(st1.whatsUp()); 
     JButton jb4 = new JButton(st1.whatsUp()); 
     JButton jb5 = new JButton(st1.whatsUp()); 
     JButton jb6 = new JButton(st1.whatsUp()); 
     JButton jb7 = new JButton(st1.whatsUp()); 
     JButton jb8 = new JButton(st1.whatsUp()); 
     JButton jb9 = new JButton(st1.whatsUp()); 
     JButton jb10 = new JButton(st1.whatsUp()); 

您可能也希望通過Code Conventions for the Java TM Programming Language閱讀,這將使人們更容易閱讀您的代碼...