import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;class studentDataTableFrame extends JFrame
{
private static final int WIDTH = 300;
private static final int HEIGHT = 200; JButton okButton;
JButton cancelButton;
Box selectBox;
Vector studentData;
JTable sutdentDataTable;
String [] head;
JScrollPane sutdentDataScrollPane1;
Object[][] content; studentDataTableFrame()
{
builderTable();
builderButton(); setLayout(new BorderLayout());
setTitle("学生信息");
setSize(WIDTH, HEIGHT);
setLocation(WIDTH,HEIGHT);
add(sutdentDataScrollPane1,BorderLayout.CENTER);
add(selectBox,BorderLayout.SOUTH); setVisible(true);//显示
addWindowListener (new WindowAdapter ()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}) ;//关闭
} void builderTable()
{
studentData = new Vector () ;
head = new String[]{"姓名","学号","性别","籍贯","简单介绍"};
//Object[][] content = {{""},{""}};
sutdentDataTable = new JTable();
sutdentDataScrollPane1 = new JScrollPane (sutdentDataTable);
} void builderButton()
{
okButton = new JButton("增加");
cancelButton = new JButton("关闭");
selectBox = Box.createHorizontalBox();
selectBox.add(Box.createHorizontalStrut(40));
selectBox.add(okButton);
selectBox.add(Box.createHorizontalGlue());
selectBox.add(cancelButton);
selectBox.add(Box.createHorizontalStrut(40)); okButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
new studentMessageInputDialog(studentDataTableFrame.this);
}
}) ; cancelButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
System.exit(0);
}
}) ;
} void addData(String s)//(Vector Data)
{
System.out.println(s);
/*studentData.add (Data) ;
StudentDataModel dm = new StudentDataModel (head , studentData) ;
sutdentDataTable.setModel (dm) ;*/
} public static void main(String[] args)
{
new studentDataTableFrame();
}
}
--------------------------------------------------------------------------import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Vector;class studentMessageInputDialog extends JDialog
{
private static final int WIDTH = 300;
private static final int HEIGHT = 200; JLabel nameLabel;
JLabel numberLabel;
JLabel sexLabel;
JLabel addressLabel;
JLabel commentLabel;
JTextField nameTextField;
JTextField numberTextField;
JComboBox sexComboBox;
JComboBox addressCombo;
JTextArea commentTextArea;
JScrollPane commentScrollPane;
JPanel inputPanel;
JButton okButton;
JButton cancelButton;
Box selectBox;
studentDataTableFrame frm; studentMessageInputDialog(studentDataTableFrame frm)
{
super (frm); builderInputPanel();
builderButton(); //必要的设置
setLayout(new BorderLayout());
setTitle("学生信息输入界面");
setSize(WIDTH, HEIGHT);
setLocation(WIDTH,HEIGHT);
add(inputPanel,BorderLayout.CENTER);
add(selectBox,BorderLayout.SOUTH); setVisible(true);//显示 addWindowListener (new WindowAdapter ()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
}) ;
}
void builderInputPanel()
{
inputPanel = new JPanel(); //网格组布局
GridBagLayout layout = new GridBagLayout();
inputPanel.setLayout(layout);
nameLabel = new JLabel("姓名: ");
nameTextField = new JTextField(10); numberLabel = new JLabel("学号: ");
numberTextField = new JTextField(10);
sexLabel = new JLabel("性别: ");
sexComboBox = new JComboBox(new String[]{"男", "女"});
addressLabel = new JLabel("籍贯: ");
addressCombo = new JComboBox(new String[]
{"南宁", "柳州", "桂林", "北海", "防城港"});
commentLabel = new JLabel("简 单 介 绍");
commentTextArea = new JTextArea();
commentTextArea.setLineWrap(true);
commentScrollPane=new JScrollPane(commentTextArea); // 添加到框架
GridBagConstraints constraints = new GridBagConstraints constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
constraints.weightx = 0;
constraints.weighty = 1; input(nameLabel, constraints, 0, 0, 1, 1);
input(numberLabel, constraints, 0, 1, 1, 1);
input(sexLabel, constraints, 0, 2, 1, 1);
input(addressLabel, constraints, 0, 3, 1, 1);
input(commentLabel, constraints, 2, 0, 1, 1); constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.weightx = 1;
input(nameTextField, constraints, 1, 0, 1, 1);
input(numberTextField, constraints, 1, 1, 1, 1);
input(sexComboBox, constraints, 1, 2, 1, 1);
input(addressCombo, constraints, 1, 3, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
input(commentScrollPane, constraints, 2, 1, 1, 3);
}
void builderButton()
{
okButton = new JButton("增加");
cancelButton = new JButton("关闭"); selectBox = Box.createHorizontalBox(); selectBox.add(Box.createHorizontalStrut(40));
selectBox.add(okButton);
selectBox.add(Box.createHorizontalGlue()); selectBox.add(cancelButton);
selectBox.add(Box.createHorizontalStrut(40));
okButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
/*Vector v = new Vector () ;
v.add (nameTextField.getText ()) ;
v.add ((String)sexComboBox.getSelectedItem()) ;
v.add ((String)addressCombo.getSelectedItem()) ;
v.add (commentTextArea.getText());*/
studentMessageInputDialog.this.frm.addData ("无法实现...
") ;//无法实现...
}
}) ; cancelButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
dispose();
}
}) ;
} void input(Component c, GridBagConstraints constraints,
int x, int y, int w, int h)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
inputPanel.add(c, constraints);
}
}
----------------------------------------------得到了父窗体的对象的引用,为什么不能调用里面的方法..................
求解.........................
import java.awt.event.*;
import javax.swing.*;
import java.util.*;class studentDataTableFrame extends JFrame
{
private static final int WIDTH = 300;
private static final int HEIGHT = 200; JButton okButton;
JButton cancelButton;
Box selectBox;
Vector studentData;
JTable sutdentDataTable;
String [] head;
JScrollPane sutdentDataScrollPane1;
Object[][] content; studentDataTableFrame()
{
builderTable();
builderButton(); setLayout(new BorderLayout());
setTitle("学生信息");
setSize(WIDTH, HEIGHT);
setLocation(WIDTH,HEIGHT);
add(sutdentDataScrollPane1,BorderLayout.CENTER);
add(selectBox,BorderLayout.SOUTH); setVisible(true);//显示
addWindowListener (new WindowAdapter ()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}) ;//关闭
} void builderTable()
{
studentData = new Vector () ;
head = new String[]{"姓名","学号","性别","籍贯","简单介绍"};
//Object[][] content = {{""},{""}};
sutdentDataTable = new JTable();
sutdentDataScrollPane1 = new JScrollPane (sutdentDataTable);
} void builderButton()
{
okButton = new JButton("增加");
cancelButton = new JButton("关闭");
selectBox = Box.createHorizontalBox();
selectBox.add(Box.createHorizontalStrut(40));
selectBox.add(okButton);
selectBox.add(Box.createHorizontalGlue());
selectBox.add(cancelButton);
selectBox.add(Box.createHorizontalStrut(40)); okButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
new studentMessageInputDialog(studentDataTableFrame.this);
}
}) ; cancelButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
System.exit(0);
}
}) ;
} void addData(String s)//(Vector Data)
{
System.out.println(s);
/*studentData.add (Data) ;
StudentDataModel dm = new StudentDataModel (head , studentData) ;
sutdentDataTable.setModel (dm) ;*/
} public static void main(String[] args)
{
new studentDataTableFrame();
}
}
--------------------------------------------------------------------------import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Vector;class studentMessageInputDialog extends JDialog
{
private static final int WIDTH = 300;
private static final int HEIGHT = 200; JLabel nameLabel;
JLabel numberLabel;
JLabel sexLabel;
JLabel addressLabel;
JLabel commentLabel;
JTextField nameTextField;
JTextField numberTextField;
JComboBox sexComboBox;
JComboBox addressCombo;
JTextArea commentTextArea;
JScrollPane commentScrollPane;
JPanel inputPanel;
JButton okButton;
JButton cancelButton;
Box selectBox;
studentDataTableFrame frm; studentMessageInputDialog(studentDataTableFrame frm)
{
super (frm); builderInputPanel();
builderButton(); //必要的设置
setLayout(new BorderLayout());
setTitle("学生信息输入界面");
setSize(WIDTH, HEIGHT);
setLocation(WIDTH,HEIGHT);
add(inputPanel,BorderLayout.CENTER);
add(selectBox,BorderLayout.SOUTH); setVisible(true);//显示 addWindowListener (new WindowAdapter ()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
}) ;
}
void builderInputPanel()
{
inputPanel = new JPanel(); //网格组布局
GridBagLayout layout = new GridBagLayout();
inputPanel.setLayout(layout);
nameLabel = new JLabel("姓名: ");
nameTextField = new JTextField(10); numberLabel = new JLabel("学号: ");
numberTextField = new JTextField(10);
sexLabel = new JLabel("性别: ");
sexComboBox = new JComboBox(new String[]{"男", "女"});
addressLabel = new JLabel("籍贯: ");
addressCombo = new JComboBox(new String[]
{"南宁", "柳州", "桂林", "北海", "防城港"});
commentLabel = new JLabel("简 单 介 绍");
commentTextArea = new JTextArea();
commentTextArea.setLineWrap(true);
commentScrollPane=new JScrollPane(commentTextArea); // 添加到框架
GridBagConstraints constraints = new GridBagConstraints constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
constraints.weightx = 0;
constraints.weighty = 1; input(nameLabel, constraints, 0, 0, 1, 1);
input(numberLabel, constraints, 0, 1, 1, 1);
input(sexLabel, constraints, 0, 2, 1, 1);
input(addressLabel, constraints, 0, 3, 1, 1);
input(commentLabel, constraints, 2, 0, 1, 1); constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.weightx = 1;
input(nameTextField, constraints, 1, 0, 1, 1);
input(numberTextField, constraints, 1, 1, 1, 1);
input(sexComboBox, constraints, 1, 2, 1, 1);
input(addressCombo, constraints, 1, 3, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
input(commentScrollPane, constraints, 2, 1, 1, 3);
}
void builderButton()
{
okButton = new JButton("增加");
cancelButton = new JButton("关闭"); selectBox = Box.createHorizontalBox(); selectBox.add(Box.createHorizontalStrut(40));
selectBox.add(okButton);
selectBox.add(Box.createHorizontalGlue()); selectBox.add(cancelButton);
selectBox.add(Box.createHorizontalStrut(40));
okButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
/*Vector v = new Vector () ;
v.add (nameTextField.getText ()) ;
v.add ((String)sexComboBox.getSelectedItem()) ;
v.add ((String)addressCombo.getSelectedItem()) ;
v.add (commentTextArea.getText());*/
studentMessageInputDialog.this.frm.addData ("无法实现...
") ;//无法实现...
}
}) ; cancelButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
dispose();
}
}) ;
} void input(Component c, GridBagConstraints constraints,
int x, int y, int w, int h)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
inputPanel.add(c, constraints);
}
}
----------------------------------------------得到了父窗体的对象的引用,为什么不能调用里面的方法..................
求解.........................
import java.awt.event.*;
import javax.swing.*;
import java.util.Vector;class studentMessageInputDialog extends JDialog
{
private static final int WIDTH = 300;
private static final int HEIGHT = 200; JLabel nameLabel;
JLabel numberLabel;
JLabel sexLabel;
JLabel addressLabel;
JLabel commentLabel;
JTextField nameTextField;
JTextField numberTextField;
JComboBox sexComboBox;
JComboBox addressCombo;
JTextArea commentTextArea;
JScrollPane commentScrollPane;
JPanel inputPanel;
JButton okButton;
JButton cancelButton;
Box selectBox;
studentDataTableFrame frm; studentMessageInputDialog(studentDataTableFrame frm1)
{
super (frm1);
frm = new studentDataTableFrame();
builderInputPanel();
builderButton(); //必要的设置
this.getContentPane().setLayout(new BorderLayout());
setTitle("学生信息输入界面");
setSize(WIDTH, HEIGHT);
setLocation(WIDTH,HEIGHT);
this.getContentPane().add(inputPanel,BorderLayout.CENTER);
this.getContentPane().add(selectBox,BorderLayout.SOUTH); setVisible(true);//显示 addWindowListener (new WindowAdapter ()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
}) ;
}
void builderInputPanel()
{
inputPanel = new JPanel(); //网格组布局
GridBagLayout layout = new GridBagLayout();
inputPanel.setLayout(layout);
nameLabel = new JLabel("姓名: ");
nameTextField = new JTextField(10); numberLabel = new JLabel("学号: ");
numberTextField = new JTextField(10);
sexLabel = new JLabel("性别: ");
sexComboBox = new JComboBox(new String[]{"男", "女"});
addressLabel = new JLabel("籍贯: ");
addressCombo = new JComboBox(new String[]
{"南宁", "柳州", "桂林", "北海", "防城港"});
commentLabel = new JLabel("简 单 介 绍");
commentTextArea = new JTextArea();
commentTextArea.setLineWrap(true);
commentScrollPane=new JScrollPane(commentTextArea); // 添加到框架
GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
constraints.weightx = 0;
constraints.weighty = 1; input(nameLabel, constraints, 0, 0, 1, 1);
input(numberLabel, constraints, 0, 1, 1, 1);
input(sexLabel, constraints, 0, 2, 1, 1);
input(addressLabel, constraints, 0, 3, 1, 1);
input(commentLabel, constraints, 2, 0, 1, 1); constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.weightx = 1;
input(nameTextField, constraints, 1, 0, 1, 1);
input(numberTextField, constraints, 1, 1, 1, 1);
input(sexComboBox, constraints, 1, 2, 1, 1);
input(addressCombo, constraints, 1, 3, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
input(commentScrollPane, constraints, 2, 1, 1, 3);
}
void builderButton()
{
okButton = new JButton("增加");
cancelButton = new JButton("关闭"); selectBox = Box.createHorizontalBox(); selectBox.add(Box.createHorizontalStrut(40));
selectBox.add(okButton);
selectBox.add(Box.createHorizontalGlue()); selectBox.add(cancelButton);
selectBox.add(Box.createHorizontalStrut(40));
okButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
/*Vector v = new Vector () ;
v.add (nameTextField.getText ()) ;
v.add ((String)sexComboBox.getSelectedItem()) ;
v.add ((String)addressCombo.getSelectedItem()) ;
v.add (commentTextArea.getText());*/
frm.addData ("无法实现...") ;//无法实现...
}
}) ; cancelButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
dispose();
}
}) ;
} void input(Component c, GridBagConstraints constraints,
int x, int y, int w, int h)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
inputPanel.add(c, constraints);
}
}
package common;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;class studentDataTableFrame extends JFrame
{
private static final int WIDTH = 300;
private static final int HEIGHT = 200; JButton okButton;
JButton cancelButton;
Box selectBox;
Vector studentData;
JTable sutdentDataTable;
String [] head;
JScrollPane sutdentDataScrollPane1;
Object[][] content; studentDataTableFrame()
{
builderTable();
builderButton();
this.getContentPane().setLayout(new BorderLayout());
//setLayout(new BorderLayout());
setTitle("学生信息");
setSize(WIDTH, HEIGHT);
setLocation(WIDTH,HEIGHT);
this.getContentPane().add(sutdentDataScrollPane1,BorderLayout.CENTER);
this.getContentPane().add(selectBox,BorderLayout.SOUTH); setVisible(true);//显示
addWindowListener (new WindowAdapter ()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}) ;//关闭
} void builderTable()
{
studentData = new Vector () ;
head = new String[]{"姓名","学号","性别","籍贯","简单介绍"};
//Object[][] content = {{""},{""}};
sutdentDataTable = new JTable();
sutdentDataScrollPane1 = new JScrollPane (sutdentDataTable);
} void builderButton()
{
okButton = new JButton("增加");
cancelButton = new JButton("关闭");
selectBox = Box.createHorizontalBox();
selectBox.add(Box.createHorizontalStrut(40));
selectBox.add(okButton);
selectBox.add(Box.createHorizontalGlue());
selectBox.add(cancelButton);
selectBox.add(Box.createHorizontalStrut(40)); okButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
new studentMessageInputDialog(studentDataTableFrame.this);
}
}) ; cancelButton.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
System.exit(0);
}
}) ;
} void addData(String s)//(Vector Data)
{
System.out.println(s);
/*studentData.add (Data) ;
StudentDataModel dm = new StudentDataModel (head , studentData) ;
sutdentDataTable.setModel (dm) ;*/
} public static void main(String[] args)
{
new studentDataTableFrame();
}
}
{
super (frm1);
frm = new studentDataTableFrame();
frm.addData ("无法实现...") ;//无法实现...
studentMessageInputDialog.this.frm.addData ("无法实现...
")
楼上的前辈,能解释一下吗?
为什么我的会出空指针异常呢?studentMessageInputDialog.this.frm.addData();
不是也是引用吗?
{
super (frm);this.frm = frm; //需要在此对frm赋值builderInputPanel();
builderButton();//必要的设置
setLayout(new BorderLayout());
setTitle("学生信息输入界面");
setSize(WIDTH, HEIGHT);
setLocation(WIDTH,HEIGHT);
add(inputPanel,BorderLayout.CENTER);
add(selectBox,BorderLayout.SOUTH); setVisible(true);//显示addWindowListener (new WindowAdapter ()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
}) ;
}
我就是根据他的提示修改 的你的程序的啦 呵呵