读书人

高分求解.解决办法

发布时间: 2011-12-30 23:30:45 作者: rapoo

高分求解.........................
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);
}
}
----------------------------------------------

得到了父窗体的对象的引用,为什么不能调用里面的方法..................
求解.........................


------解决方案--------------------


package common;

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 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();
}
}



[解决办法]
studentMessageInputDialog(studentDataTableFrame frm)
{
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();
}
}) ;
}
[解决办法]
JFrame不可以直接 add的 要 this.getContentPane().add

还有你的frm 没有实例化他 所以不能调用 adddate的方法

你用eclipse 编译你的 程序他回给你好多出错提示的
我就是根据他的提示修改 的你的程序的啦 呵呵

读书人网 >J2SE开发

热点推荐