Java 绑定元素时,如何从netbeans创建的另一个类访问私有列表
我曾尝试在另一个类中创建公共静态列表,并将它们设置为与私有列表相同的列表,但我得到了一个巨大的静态列表,它告诉我无法清除列表,也无法设置列表。请帮忙Java 绑定元素时,如何从netbeans创建的另一个类访问私有列表,java,list,netbeans,private,Java,List,Netbeans,Private,我曾尝试在另一个类中创建公共静态列表,并将它们设置为与私有列表相同的列表,但我得到了一个巨大的静态列表,它告诉我无法清除列表,也无法设置列表。请帮忙 public void setLists() { General.programmeStatsListT.clear(); General.programmeStatsListT.addAll(this.programmeStatsList); General.fightersListT.clear(); Gene
public void setLists() {
General.programmeStatsListT.clear();
General.programmeStatsListT.addAll(this.programmeStatsList);
General.fightersListT.clear();
General.fightersListT.addAll(this.fightersList);
General.userTableListT.clear();
General.userTableListT.addAll(this.userTableList);
General.userStatsListT.clear();
General.userStatsListT.addAll(this.userStatsList);
}
以下是staptrace:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Database.Database_Frame.setLists(Database_Frame.java:379)
at Database.Database_Frame.<init>(Database_Frame.java:41)
at GUI.G_Start_Frame.<init>(G_Start_Frame.java:14)
at GUI.G_Start_Frame$4.run(G_Start_Frame.java:204)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常
在Database.Database\u Frame.setLists(Database\u Frame.java:379)
在Database.Database\u Frame.(Database\u Frame.java:41)
在GUI.G_Start_Frame.(G_Start_Frame.java:14)
在GUI.G_Start_Frame$4.run处(G_Start_Frame.java:204)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
在java.awt.EventQueue.access$200(EventQueue.java:103)
位于java.awt.EventQueue$3.run(EventQueue.java:694)
在java.awt.EventQueue$3.run(EventQueue.java:692)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161)
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
在中,我用这个类扩展javax.swing.JFrame,然后让我的其他类扩展这个类
public class General extends javax.swing.JFrame {
////////////////////////////DATABASE CODE////////////////////////////////
public static EntityManager DBWORKS;
Database_Frame database;
//List used as imterdetiaries between private table lists and the rest of the programme
public static List<Database.Fighters> fightersListT;
public static List<Database.ProgrammeStats> programmeStatsListT;
public static List<Database.UserStats> userStatsListT;
public static List<Database.UserTable> userTableListT;
//Iterators for intermediatory lists
public static ListIterator<Database.Fighters> fightersT_Iterator;
public static ListIterator<Database.ProgrammeStats> programmeST_Iterator;
public static ListIterator<Database.UserStats> userST_Iterator;
public static ListIterator<Database.UserTable> userTT_Iterator;
///////////////////MAPS, ARRAYS, DATABASE INTERATION//////////////////////
protected Map<String, User> userT_TreeMap = new TreeMap<>();
protected ArrayList<String> userT_TreeTemp = new ArrayList<>();
protected boolean validateNewUser(Boolean valid, Boolean format, String username, String password, String name, String surname, String rights, String pic_Dir) {
if (name.isEmpty()) {
JOptionPane.showMessageDialog(null, "Please enter your name", "Missing Field", JOptionPane.ERROR_MESSAGE);
} else if (password.isEmpty()) {
JOptionPane.showMessageDialog(null, "Please enter your password", "Missing Field", JOptionPane.ERROR_MESSAGE);
} else if (surname.isEmpty()) {
JOptionPane.showMessageDialog(null, "Please enter your surname", "Missing Field", JOptionPane.ERROR_MESSAGE);
} else if (password.trim().length() < 8 || password.trim().length() > 30) {
JOptionPane.showMessageDialog(null, "Password must be between 8 and 30 characters long", "Input Error", JOptionPane.ERROR_MESSAGE);
G_Register_Frame.pwf_Password.setText(null);
A_Add_User.pwf_Password.setText(null);
} else if (name.trim().length() > 50) {
JOptionPane.showMessageDialog(null, "Name can only be 50 characters long", "Input Error", JOptionPane.ERROR_MESSAGE);
G_Register_Frame.txtf_Name.setText(null);
} else if (surname.trim().length() > 50) {
JOptionPane.showMessageDialog(null, "Surname can only be 50 characters long", "Input Error", JOptionPane.ERROR_MESSAGE);
G_Register_Frame.txtf_Surname.setText(null);
A_Add_User.txtf_Surname.setText(null);
} else {
for (int i = 0; i < name.length(); i++) {
if (!Character.isLetter(name.charAt(i))) {
format = false;
if (format == false) {
JOptionPane.showMessageDialog(null, "Name can only consist of letters", "Input Error", JOptionPane.ERROR_MESSAGE);
G_Register_Frame.txtf_Name.setText(null);
A_Add_User.txtf_Name.setText(null);
break;
}
}
}
for (int i = 0; i < surname.length(); i++) {
if (!Character.isLetter(surname.charAt(i))) {
format = false;
JOptionPane.showMessageDialog(null, "Surname can only consist of letters", "Input Error", JOptionPane.ERROR_MESSAGE);
G_Register_Frame.txtf_Surname.setText(null);
A_Add_User.txtf_Surname.setText(null);
break;
}
}
if (format == true) {
valid = true;
}
}
return valid;
}
protected void addUser(String username, String password, String name, String surname, String rights, String pic_Dir) {
userT_TreeMap.put(username, new User(username, password, name, surname, rights, pic_Dir));
}
protected void writeDB_UserTBL() {
for (String temp : userT_TreeTemp) {
try {
DBWORKS.find(UserTable.class, temp);
DBWORKS.getTransaction().begin();
DBWORKS.remove(temp);
DBWORKS.getTransaction().commit();
DBWORKS.clear();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Database update failed.\nPlease report this error to the administrator", "ERROR " + e, JOptionPane.ERROR_MESSAGE);
}
}
for (Map.Entry<String, User> entry : userT_TreeMap.entrySet()) {
UserTable user = new UserTable();
user.setId(entry.getKey());
user.setFirstName(entry.getValue().getName());
user.setSurname(entry.getValue().getSurname());
user.setPassword(entry.getValue().getPassword());
user.setRights(entry.getValue().getRights());
user.setPicDir(entry.getValue().getPic_Dir());
DBWORKS.getTransaction().begin();
DBWORKS.persist(user);
DBWORKS.getTransaction().commit();
}
database.clearLists();
database.addAll();
//database.setLists();
database.getLists(programmeStatsListT, fightersListT, userStatsListT, userTableListT);
userTT_Iterator = userTableListT.listIterator(0);
database.setUserT(database.userT);
userT_TreeMap.clear();
database.addAll();
database.clearLists();
database.addAll();
fillUserT_TreeMap();
}
protected void fillUserT_TreeMap() {
for (UserTable temp : userTableListT) {
userT_TreeMap.put(temp.getId(), new User(temp.getId(), temp.getPassword(), temp.getFirstName(), temp.getSurname(), temp.getRights(), temp.getPicDir()));
}
userT_TreeTemp.clear();
for (Map.Entry<String, User> entry : userT_TreeMap.entrySet()) {
userT_TreeTemp.add(entry.getKey());
}
}
///////////////////////GENERAL METHODS////////////////////////////////////
protected void safeEnd(boolean end) {
System.exit(0);
}
protected void backToMain() {
new G_Main_Menu_Frame().setVisible(true);
this.setVisible(false);
}
protected void backToAdmin_Menu() {
new A_Admin_Menu_Frame().setVisible(true);
this.setVisible(false);
}
protected void backToUser_Menu() {
new U_User_Menu().setVisible(true);
this.setVisible(false);
}
protected void backToPredict() {
new U_Predict_Frame().setVisible(true);
this.setVisible(false);
}
protected void backToDef_Res() {
new A_Define_Frame().setVisible(true);
this.setVisible(false);
}
protected void goToDef_Frame() {
new A_Def_Res().setVisible(true);
this.setVisible(false);
}
protected void backToUser_Man() {
new A_User_Frame().setVisible(true);
this.setVisible(false);
}
protected void backToA_Stats() {
new A_Statistics_Frame().setVisible(true);
this.setVisible(false);
}
protected void printList() {
for(int i = 0; 0 < userTableListT.size(); i++) {
System.out.println("" + userStatsListT.get(i));
}
}
protected void setIterators() {
fightersT_Iterator = fightersListT.listIterator(0);
programmeST_Iterator = programmeStatsListT.listIterator(0);
userST_Iterator = userStatsListT.listIterator(0);
userTT_Iterator = userTableListT.listIterator(0);
}
公共类通用扩展javax.swing.JFrame{
////////////////////////////数据库代码////////////////////////////////
公共静态实体管理器DBWORKS;
数据库\框架数据库;
//列表用作专用表列表和程序其余部分之间的分隔符
公共静态列表fightersListT;
公共静态列表程序mestatslistt;
公共静态列表userStatsListT;
公共静态列表userTableListT;
//中间列表的迭代器
公共静态列表迭代器fightersT_迭代器;
公共静态列表迭代器;
公共静态列表迭代器userST_迭代器;
公共静态列表迭代器userTT_迭代器;
///////////////////地图、阵列、数据库交互//////////////////////
受保护的映射userT_TreeMap=new TreeMap();
受保护的ArrayList userT_TreeTemp=new ArrayList();
受保护的布尔validateNewUser(布尔有效、布尔格式、字符串用户名、字符串密码、字符串名称、字符串姓氏、字符串权限、字符串pic_Dir){
if(name.isEmpty()){
JOptionPane.showMessageDialog(null,“请输入您的姓名”,“缺少字段”,JOptionPane.ERROR\u消息);
}else if(password.isEmpty()){
JOptionPane.showMessageDialog(null,“请输入密码”,“缺少字段”,JOptionPane.ERROR\u消息);
}else if(姓氏.isEmpty()){
JOptionPane.showMessageDialog(null,“请输入您的姓氏”,“缺少字段”,JOptionPane.ERROR\u消息);
}else if(password.trim().length()<8 | | password.trim().length()>30){
JOptionPane.showMessageDialog(null,“密码长度必须在8到30个字符之间”,“输入错误”,JOptionPane.Error\u消息);
G_Register_Frame.pwf_Password.setText(null);
A_Add_User.pwf_Password.setText(null);
}否则如果(name.trim().length()>50){
JOptionPane.showMessageDialog(null,“名称只能有50个字符长”,“输入错误”,JOptionPane.Error\u消息);
G_Register_Frame.txtf_Name.setText(null);
}else if(姓氏.trim().length()>50){
JOptionPane.showMessageDialog(null,“姓氏长度只能为50个字符”,“输入错误”,JOptionPane.Error\u消息);
G_Register_Frame.txtf_姓氏.setText(null);
A_Add_User.txtf_姓氏.setText(null);
}否则{
对于(int i=0;ipublic final class Database_Frame extends javax.swing.JFrame{
public Fighters fighters;
public ProgrammeStats programme;
public UserStats userS;
public UserTable userT;
public ListIterator<Database.Fighters> fightersListIterator;
public ListIterator<Database.ProgrammeStats> programmeListIterator;
public ListIterator<Database.UserStats> userStatsListIterator;
public ListIterator<Database.UserTable> userTableListIterator;
public Database_Frame() {
initComponents();
setEntityMan(General.DBWORKS);
setUserS(userS);
setUserT(userT);
setProgramme(programme);
setFighters(fighters);
fightersListIterator = fightersList.listIterator(0);
programmeListIterator = programmeStatsList.listIterator(0);
userTableListIterator = userTableList.listIterator(0);
userStatsListIterator = userStatsList.listIterator(0);
setLists();
//setLists(programmeStatsListT, fightersListT, userStatsListT, userTableListT);
public Fighters getFighters() {
return fighters;
}
public void setFighters(Fighters fighters) {
Fighters oldFighters = this.fighters;
this.fighters = fighters;
firePropertyChange("fighters", oldFighters, fighters);
}
public ProgrammeStats getProgramme() {
return programme;
}
public void setProgramme(ProgrammeStats programme) {
ProgrammeStats oldProgramme = this.programme;
this.programme = programme;
firePropertyChange("programme", oldProgramme, programme);
}
public UserStats getUserS() {
return userS;
}
public void setUserS(UserStats userS) {
UserStats oldUserStats = this.userS;
this.userS = userS;
firePropertyChange("userS", oldUserStats, userS);
}
public UserTable getUserT() {
return userT;
}
public void setUserT(UserTable userT) {
UserTable oldUserTable = this.userT;
this.userT = userT;
firePropertyChange("userT", oldUserTable, userT);
}
public void setLists() {
General.programmeStatsListT.clear();
General.programmeStatsListT.addAll(this.programmeStatsList);
General.fightersListT.clear();
General.fightersListT.addAll(this.fightersList);
General.userTableListT.clear();
General.userTableListT.addAll(this.userTableList);
General.userStatsListT.clear();
General.userStatsListT.addAll(this.userStatsList);
}
public void getLists(List programmeStatsList, List fightersList, List userStatsList, List userTableList) {
this.programmeStatsList = programmeStatsList;
this.fightersList = fightersList;
this.userStatsList = userStatsList;
this.userTableList = userTableList;
}
public void clearLists() {
programmeStatsList.clear();
fightersList.clear();
userStatsList.clear();
userTableList.clear();
}
public void addAll() {
programmeStatsList.addAll(programmeStatsQuery.getResultList());
fightersList.addAll(fightersQuery.getResultList());
userStatsList.addAll(userStatsQuery.getResultList());
userTableList.addAll(userTableQuery.getResultList());
}
public void setEntityMan(EntityManager eMan) {
eMan = FairyTail_DBPUEntityManager;
}