gpt4 book ai didi

java - 内联类导致应用程序未运行

转载 作者:行者123 更新时间:2023-12-01 12:49:16 26 4
gpt4 key购买 nike

我在 Eclipse 上单击“作为“Java 应用程序”运行”来运行应用程序时遇到问题;什么都没发生。我跟踪我的代码,发现以下代码导致应用程序无法运行。如果我注释掉它,框架就会显示。编译的时候没有错误。有人告诉我解决问题吗。提前致谢。

      for (Comment source:c ){
String iconString="ABCTestLocation";
PrintList p=new PrintList(iconString, source.toString());
newList.add(p);
if (source.thisContent.length()>0){
p=new PrintList("", source.thisContent);

}else{
p=new PrintList("","");
}
newList.add(p);
}

有整个java文件

package PDFAnnotationPackage;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;


public class Question extends JFrame implements ActionListener {

private static ArrayList<PrintList>newList;
private static DefaultTableModel tableModel;

public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run()
{
new Question();
}
});

}
public Question(){
super("Main Form");
this.setMinimumSize(new Dimension(400, 500));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);

this.setLayout(new BorderLayout());


// Name the JMenu & Add Items
JMenu menu = new JMenu("File");
JMenuItem m=new JMenuItem("Print");
m.addActionListener(this);
menu.add(m);


// Add JMenu bar
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
//http://www.java2s.com/Code/Java/Swing-JFC/DynamicmenuitemforMDIchildrenwindowandscrollbar.htm

setJMenuBar(menuBar);

ArrayList<Comment>c=new ArrayList<Comment>();


c.add(new Comment("Testing 123", "Tester", 2));
c.add(new Comment("", "Tester", 2));

String txt="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempor accumsan purus, vulputate auctor eros malesuada vitae. Vivamus sed nisi a lectus feugiat pulvinar. Cras in elementum lacus, vitae pharetra massa. Maecenas eros nulla, vulputate ac feugiat eu, ultricies quis lacus. Etiam leo lorem, rutrum sit amet eleifend id, consectetur in nibh. Vestibulum in nisi eu odio interdum pharetra. Vivamus sed feugiat enim. Praesent ultricies sagittis accumsan. Donec tempor, justo eget vehicula placerat, tortor mi sodales turpis, sed porta mauris sapien a nunc.";
txt=txt+ "\n\nDonec id orci mauris. Morbi sed congue leo. Integer id quam cursus, tempus nibh id, placerat magna. Ut eleifend lorem condimentum pretium ultricies. Sed nec dui quis purus scelerisque ultrices eu sit amet tellus. Vestibulum sapien odio, laoreet nec auctor tincidunt, porta nec magna. Nulla ornare libero ullamcorper ultricies egestas. Phasellus elementum sodales faucibus. Nam in enim venenatis, tempor nulla in, mattis elit. Nulla massa ligula, blandit fermentum ligula ut, rutrum malesuada nisi. Phasellus vel facilisis libero.";
txt=txt+"\n\nQuisque sit amet malesuada turpis. Quisque tempus ultricies tortor, sed vehicula felis volutpat sed. Aenean lectus diam, auctor sit amet aliquam ut, mollis in ipsum. Etiam id sollicitudin tellus, vitae auctor velit. Vivamus porttitor purus vel lacinia faucibus. In sem odio, cursus quis mi vulputate, rutrum bibendum sapien. Maecenas iaculis viverra lectus non consectetur. Nulla eget dui non nisl sodales scelerisque ac vel tellus. Mauris mattis sem molestie ipsum rutrum lobortis. Quisque suscipit molestie massa nec consectetur. Nulla hendrerit risus quis elit mattis venenatis. Mauris sagittis at quam non semper.";
txt=txt+"\n\n\nMauris vitae porttitor ipsum. Praesent feugiat, ligula sed aliquet sagittis, nibh justo posuere massa, sed vehicula erat metus vitae nulla. Proin pulvinar, risus in posuere sagittis, libero massa mattis tellus, nec pharetra justo ipsum ac odio. Nulla facilisi. Aenean id enim tincidunt lacus tristique pellentesque. Suspendisse fringilla tellus dolor. Aliquam.";
txt=txt+ "\n\nDonec id orci mauris. Morbi sed congue leo. Integer id quam cursus, tempus nibh id, placerat magna. Ut eleifend lorem condimentum pretium ultricies. Sed nec dui quis purus scelerisque ultrices eu sit amet tellus. Vestibulum sapien odio, laoreet nec auctor tincidunt, porta nec magna. Nulla ornare libero ullamcorper ultricies egestas. Phasellus elementum sodales faucibus. Nam in enim venenatis, tempor nulla in, mattis elit. Nulla massa ligula, blandit fermentum ligula ut, rutrum malesuada nisi. Phasellus vel facilisis libero.";
txt=txt+"\n\nQuisque sit amet malesuada turpis. Quisque tempus ultricies tortor, sed vehicula felis volutpat sed. Aenean lectus diam, auctor sit amet aliquam ut, mollis in ipsum. Etiam id sollicitudin tellus, vitae auctor velit. Vivamus porttitor purus vel lacinia faucibus. In sem odio, cursus quis mi vulputate, rutrum bibendum sapien. Maecenas iaculis viverra lectus non consectetur. Nulla eget dui non nisl sodales scelerisque ac vel tellus. Mauris mattis sem molestie ipsum rutrum lobortis. Quisque suscipit molestie massa nec consectetur. Nulla hendrerit risus quis elit mattis venenatis. Mauris sagittis at quam non semper.";
txt=txt+"\n\n\nMauris vitae porttitor ipsum. Praesent feugiat, ligula sed aliquet sagittis, nibh justo posuere massa, sed vehicula erat metus vitae nulla. Proin pulvinar, risus in posuere sagittis, libero massa mattis tellus, nec pharetra justo ipsum ac odio. Nulla facilisi. Aenean id enim tincidunt lacus tristique pellentesque. Suspendisse fringilla tellus dolor. Aliquam.";
c.add(new Comment(txt, "Tester3", 3));

for (Comment source:c ){
String iconString="ABCTestLocation";
PrintList p=new PrintList(iconString, source.toString());
newList.add(p);
if (source.thisContent.length()>0){
p=new PrintList("", source.thisContent);

}else{
p=new PrintList("","");
}
newList.add(p);
}

setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String command = e.getActionCommand().trim();
if (command.equalsIgnoreCase("Print")) {

}

}

//inline class
private static class Comment{

private String thisContent, thisAuthor;
private int thisPage;
private Comment(String content, String author, int page){
thisContent=content;
thisAuthor=author;
thisPage=page;

}
@Override
public String toString() {
return thisAuthor +"\t"+String.valueOf(thisPage);
}

}

//Inline class
private static class PrintList {
private String text;
private String icon;

private PrintList(String icon, String text){

this.icon=icon;
this.text=text;

}
private String getIcon(){
return this.icon;
}
private String getText(){
return this.text;
}


}

}

最佳答案

我编译了上面的代码,出现了一个错误,这是来自您的 newList 字段的 NPE ,该字段未实例化,您需要实例化您的 ArrayList 首先,然后再对其执行操作。

问题:

private static ArrayList<PrintList>newList; //was not instantaited

解决方案:

 private static ArrayList<PrintList>newList = new ArrayList<PrintList>();

关于java - 内联类导致应用程序未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24375913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com