如何解决如何使用搜索选项修复Gui的netbeans中的运行时错误?
我正在创建一个gui,我将在其中获取有关人员的一些信息并将其存储/附加到文件中。 然后,我创建了一个textarea1,其中将按名称显示/显示存储的信息。 最后,我创建了一个搜索选项,当我输入姓名或电话号码时,应该在下面的其他textarea2中显示/显示匹配的结果。 但是,我的gui给出了错误,并且由于我编写了搜索选项的代码(代码中的button3)而无法运行。我该如何解决?顺便说一句,我使用的是Java框架形式,所以这就是为什么代码太小了。
package address.book;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
class Students {
private String name;
private String phoneNo;
private String email;
private String streetAddress;
public Students(String name,String phoneNo,String email,String streetAddress) {
this.name = name;
this.phoneNo = phoneNo;
this.email = email;
this.streetAddress = streetAddress;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getStreetAddress() {
return streetAddress;
}
public void setStreetAddress(String streetAddress) {
this.streetAddress = streetAddress;
}
}
public class AddressBook extends javax.swing.JFrame {
private Object jTextArea2;
private JLabel jLabel7;
private JTextArea jTextArea1;
private JTextField jTextField1;
private JTextField jTextField2;
private JTextField jTextField3;
private JTextField jTextField4;
private JTextField jTextField5;
private JTextField jTextField6;
/**
* Creates new form AddressBook
*/
public AddressBook() {
initComponents();
this.setTitle("Address Book");
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jButton2 = new javax.swing.JButton();
jTextField5 = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jTextField6 = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jButton3 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTextArea2 = new javax.swing.JTextArea();
jLabel7 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jTextField3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField3ActionPerformed(evt);
}
});
jTextField4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField4ActionPerformed(evt);
}
});
jLabel1.setText("Name :");
jLabel2.setText("Phone No# :");
jLabel3.setText("Email :");
jLabel4.setText("Street Address :");
jButton1.setText("Register");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jButton2.setText("Show");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jTextField5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField5ActionPerformed(evt);
}
});
jLabel5.setText("Name :");
jTextField6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField6ActionPerformed(evt);
}
});
jLabel6.setText("Phone No# :");
jButton3.setText("Search");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jTextArea2.setColumns(20);
jTextArea2.setRows(5);
jScrollPane2.setViewportView(jTextArea2);
jLabel7.setFont(new java.awt.Font("Courier New",3,18)); // NOI18N
jLabel7.setText(" <Search a person by their name or phone number>");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(182,182,182)
.addComponent(jButton2,javax.swing.GroupLayout.PREFERRED_SIZE,208,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(39,39,39)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1)
.addComponent(jScrollPane2)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addGroup(layout.createSequentialGroup()
.addGap(2,2,2)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel1)
.addComponent(jLabel3))))
.addGap(42,42,42)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton1,232,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)
.addComponent(jTextField1)
.addComponent(jTextField2)
.addComponent(jTextField3)
.addComponent(jTextField4,367,javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel6)
.addGap(56,56,56)
.addComponent(jTextField6,355,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(81,81,81)
.addComponent(jTextField5,javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0,Short.MAX_VALUE)))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(30,30,30)
.addComponent(jLabel7))
.addGroup(layout.createSequentialGroup()
.addGap(181,181,181)
.addComponent(jButton3,209,javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(96,Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(29,29,29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField2,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField3,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField4,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addGap(18,18,18)
.addComponent(jButton1)
.addGap(18,18)
.addComponent(jScrollPane1,237,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18,18)
.addComponent(jButton2)
.addGap(29,29)
.addComponent(jLabel7)
.addGap(18,18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField5,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(18,18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(jTextField6,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(20,20,20)
.addComponent(jButton3)
.addGap(18,18)
.addComponent(jScrollPane2,203,Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String name = jTextField1.getText();
String phoneNo = jTextField2.getText();
String email = jTextField3.getText();
String streetAddress = jTextField4.getText();
try{
FileWriter fw = new FileWriter("Registration.txt",true);
PrintWriter pw = new PrintWriter(fw);
pw.println(name+" "+phoneNo+" "+email+" "+streetAddress+" ");
pw.close();
}
catch(IOException e){
e.printStackTrace();
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try{
File f = new File("Registration.txt");
Scanner sc = new Scanner(f);
jTextArea1.setText("");
while(sc.hasNext()){
String name = sc.next();
String phoneNo = sc.next();
String email = sc.next();
String streetAddress = sc.nextLine();
String data = "Name: "+name+"\n "+" PhoneNo: "+phoneNo+"\n "+" Email: "+email+"\n "+" StreetAddress: "+streetAddress+"\n\n";
jTextArea1.append(data);
}
sc.close();
}
catch(IOException e){
e.printStackTrace();
}
}
private void jTextField5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextField6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try{
File f = new File("Registration.txt");
Scanner sc = new Scanner(f);
FileWriter fw = new FileWriter("Registration.txt",true);
PrintWriter pw = new PrintWriter(fw);
jTextArea2.append("");
Students [] students = new Students[10];
int index = 0;
while(sc.hasNext()){
String namex = jTextField5.getText();
String phoneNox = jTextField6.getText();
String name = sc.next();
String phoneNo = sc.next();
String email = sc.next();
String streetAddress = sc.next();
if(namex.equals(name)||phoneNox.equals(phoneNo)){
Students st = new Students(name,phoneNo,email,streetAddress);
students[index] = st;
}
index++;
}
for(int i = 0; i < index; i++){
Students st = students[i];
String data = "Results:\n\nName: "+st.getName()+"\n "+" PhoneNo: "+st.getPhoneNo()+"\n "+" Email: "+st.getEmail()+"\n "+" StreetAddress: "+st.getStreetAddress()+"\n\n";
jTextArea2.append(data);
}
sc.close();
pw.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available,stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(AddressBook.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(AddressBook.class.getName()).log(java.util.logging.Level.SEVERE,ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(AddressBook.class.getName()).log(java.util.logging.Level.SEVERE,ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(AddressBook.class.getName()).log(java.util.logging.Level.SEVERE,ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new AddressBook().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextArea jTextArea2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
// End of variables declaration
}```
解决方法
我也尝试使用按钮3的新代码来运行它,并且没有学生班级: 它仍然没有按计划工作。当我运行它时,他们说公共主类不在包通讯簿中,而私有标签在代码中全部用红色标记。
try{
File f = new File("Registration");
Scanner sc = new Scanner(f);
jTextArea2.append("");
while(sc.hasNext()){
String namex = jTextField5.getText();
String phoneNox = jTextField6.getText();
String name = sc.next();
String phoneNo = sc.next();
String email = sc.next();
String streetAddress = sc.next();
if(namex.equals(name)||phoneNox.equals(phoneNo)){
String data = "Name: "+name+"\n "+" PhoneNo: "+phoneNo+"\n "+" Email: "+email+"\n "+" StreetAddress: "+streetAddress+"\n\n";
jTextArea2.append(data);
}
}
sc.close();
}
catch(IOException e){
e.printStackTrace();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。