Sina.iRoid
سه شنبه 29 مهر 1393, 09:20 صبح
سلام دوستان. ممنون میشم اگر راهنماییم کنید.
من دارم یه برنامه ای می نویسم که فیلد های کلاسم و به صورت private تعریف کردم و می خوام با استفاده از متد های ستر و گتر به این فیلد ها در کلاس های دیگه دسترسی داشته باشم. کد هایی که نوشتم به شکل زیره:
کد کلاس FiledClass:
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
public class FiledClass {
private JButton leftButton; //button to set alignment left
private JButton centerButton; //button to set alignment center
private JButton rightButton; //button to set alignment right
private FlowLayout layout; //layout object
private Container container; //container to set layout
//getter and setter
public JButton getLeftButton(){
return leftButton;
}
public void setLeftButton(JButton leftButton){
this.leftButton = new JButton("Left");
}
public JButton getCenterButton(){
return centerButton;
}
public void setCenterButton(JButton centerButton){
this.centerButton = new JButton("Center");
}
public JButton getRightButton(){
return rightButton;
}
public void setRightButton(JButton rightButton){
this.rightButton = new JButton("Right Button");
}
public FlowLayout getLayout(){
return layout;
}
public void setLayout(FlowLayout layout){
this.layout = new FlowLayout();
}
public Container getContainer(){
return container;
}
public void setContainer(Container container){
this.container = new Container();
}
}
کد کلاس FlowLayoutFrame:
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class FlowLayoutFrame extends JFrame{
private FiledClass ob;
//first constructor
public FlowLayoutFrame(FiledClass ob) {
this.ob = ob;
}
//second constructor
public FlowLayoutFrame() {
super("Flowlayout Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(ob.getLayout());
add(ob.getLeftButton());
setSize(300, 300);
setVisible(true);
}
}
و این هم کد کلاس اصلی:
public class DriverClass {
public static void main(String[] args) {
new FlowLayoutFrame();
}
}
من الان می خوام در کلاس FlowLayoutFrame به button ها و layout دسترسی داشته باشم که بتونم روی فریم add کنم. اما نمیشه. NullPointerException میده.
نمی فهمم که مشکل از کجاست. ممنون اگر راهنماییم کنید.
من دارم یه برنامه ای می نویسم که فیلد های کلاسم و به صورت private تعریف کردم و می خوام با استفاده از متد های ستر و گتر به این فیلد ها در کلاس های دیگه دسترسی داشته باشم. کد هایی که نوشتم به شکل زیره:
کد کلاس FiledClass:
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
public class FiledClass {
private JButton leftButton; //button to set alignment left
private JButton centerButton; //button to set alignment center
private JButton rightButton; //button to set alignment right
private FlowLayout layout; //layout object
private Container container; //container to set layout
//getter and setter
public JButton getLeftButton(){
return leftButton;
}
public void setLeftButton(JButton leftButton){
this.leftButton = new JButton("Left");
}
public JButton getCenterButton(){
return centerButton;
}
public void setCenterButton(JButton centerButton){
this.centerButton = new JButton("Center");
}
public JButton getRightButton(){
return rightButton;
}
public void setRightButton(JButton rightButton){
this.rightButton = new JButton("Right Button");
}
public FlowLayout getLayout(){
return layout;
}
public void setLayout(FlowLayout layout){
this.layout = new FlowLayout();
}
public Container getContainer(){
return container;
}
public void setContainer(Container container){
this.container = new Container();
}
}
کد کلاس FlowLayoutFrame:
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class FlowLayoutFrame extends JFrame{
private FiledClass ob;
//first constructor
public FlowLayoutFrame(FiledClass ob) {
this.ob = ob;
}
//second constructor
public FlowLayoutFrame() {
super("Flowlayout Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(ob.getLayout());
add(ob.getLeftButton());
setSize(300, 300);
setVisible(true);
}
}
و این هم کد کلاس اصلی:
public class DriverClass {
public static void main(String[] args) {
new FlowLayoutFrame();
}
}
من الان می خوام در کلاس FlowLayoutFrame به button ها و layout دسترسی داشته باشم که بتونم روی فریم add کنم. اما نمیشه. NullPointerException میده.
نمی فهمم که مشکل از کجاست. ممنون اگر راهنماییم کنید.