配列内のすべての項目をJListに入れるループを作成しようとすると、NullPointerExceptionが発生し、何が起こっているのかわからないという問題が発生します。Java ftp:配列をJlistにループ
私は正確にどのように言葉これを知らない*、私はここだけ
非常に困惑している私は上の問題を抱えています一部です:あなたは、いくつかのより多くのコードが必要な場合String[] files = null;
try {
//Something here
files = client.listNames();
for(String item: files){
model.addElement(item);
}
JList list = new JList(model);
list.setSelectionMode(0);
JScrollPane scroll = new JScrollPane(list);
scroll.setBounds(110, 10, 560, 630);
pane.add(scroll);
}catch (IOException e) {
e.printStackTrace();
}
、ここでは完全なプログラムです: パッケージp1;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.SocketException;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public class OperaFTP{
private static FTPClient client = new FTPClient();
private static OperaFTP Operation = new OperaFTP();
private static JLabel Cr;
JFrame loginWindow = new JFrame("Login");
public static void main(String[] args){
Operation.firstWindow();
}
private void firstWindow(){
JPanel loginPane = new JPanel(null);
JLabel title;
JLabel ftpMore;
JLabel userName;
JLabel passWord;
JButton connect = new JButton("Connect");
loginWindow.setDefaultCloseOperation(3);
loginWindow.setSize(300, 340);
loginWindow.setResizable(false);
loginWindow.setLocationRelativeTo(null);
loginWindow.add(loginPane);
title = new JLabel("FTP LOGIN");
title.setFont(new Font("Times New Roman", 1, 40));
title.setForeground(Color.RED);
title.setBounds(35, 6, 300, 60);
loginPane.add(title);
ftpMore = new JLabel("ftp://");
ftpMore.setBounds(20, 76, 60, 30);
ftpMore.setForeground(Color.BLUE);
ftpMore.setFont(new Font("Times New Roman", 0, 16));
loginPane.add(ftpMore);
JTextField ftpIp = new JTextField();
ftpIp.setBounds(50, 80, 190, 25);
loginPane.add(ftpIp);
userName = new JLabel("Username:");
userName.setBounds(70, 115, 60, 30);
userName.setFont(new Font("Times New Roman", 0, 14));
loginPane.add(userName);
JTextField userField = new JTextField();
userField.setBounds(70, 140, 150, 25);
loginPane.add(userField);
passWord = new JLabel("Password:");
passWord.setBounds(70, 175, 60, 30);
passWord.setFont(new Font("Times New Roman", 0, 14));
loginPane.add(passWord);
JPasswordField passField = new JPasswordField();
passField.setBounds(70, 200, 150, 25);
loginPane.add(passField);
connect.setBounds(75, 240, 140, 40);
connect.setFont(new Font("Arial", 2, 18));
loginPane.add(connect);
Cr = new JLabel("Save credentials");
Cr.setBounds(95, 280, 200, 30);
loginPane.add(Cr);
JCheckBox saveCr = new JCheckBox();
saveCr.setBounds(75, 285, 20, 20);
loginPane.add(saveCr);
File ftpC = new File(System.getProperty("user.home") + "\\Documents\\FTPFILECREDIANTIALS.txt");
String xx = null;
String xx2 = null;
String xx3 = null;
if (ftpC.exists()){
try{
BufferedReader read = new BufferedReader(new FileReader(ftpC));
xx = read.readLine();
xx2 = read.readLine();
xx3 = read.readLine();
read.close();
}
catch (IOException e1){
System.out.println("FILE NOT FOUND/CANT READ FROM FILE");
}
}
ftpIp.setText(xx);
userField.setText(xx2);
passField.setText(xx3);
saveCr.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
try{
PrintWriter write = new PrintWriter(ftpC);
write.println(ftpIp.getText());
write.println(userField.getText());
write.print(passField.getPassword());
write.close();
}
catch (FileNotFoundException e1){
System.out.println("FILE NOT FOUND:" + e1);
}
}
});
connect.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String user = null;
String pass = null;
String server = null;
server = ftpIp.getText();
user = userField.getText();
char[] passs = passField.getPassword();
pass = passs.toString();
try{
login(server, user, pass);
} catch (IOException e1) {
System.out.println(e1);
}
}
});
loginWindow.setVisible(true);
}
public static void login(String server, String user, String pass) throws SocketException, IOException{
client.connect(server, 21);
client.login(user, pass);
client.enterLocalPassiveMode();
client.setFileType(FTP.BINARY_FILE_TYPE);
boolean success = client.isConnected();
if(success){
Operation.loginWindow.dispose();
frame();
}else{
}
}
@SuppressWarnings("unchecked")
public static void frame(){
JFrame window = new JFrame();
JPanel pane = new JPanel(null);
DefaultListModel model = new DefaultListModel();
window.setSize(700, 700);
window.setResizable(false);
window.setLocationRelativeTo(null);
window.add(pane);
JButton upload = new JButton("Upload");
upload.setBounds(5, 5, 90, 30);
upload.setFont(new Font("Arial", 0, 12));
pane.add(upload);
JButton download = new JButton("Download");
download.setBounds(5, 40, 90, 30);
download.setFont(new Font("Arial", 0, 12));
pane.add(download);
JButton delete = new JButton("Delete");
delete.setBounds(5, 75, 90, 30);
delete.setFont(new Font("Arial", 0, 12));
pane.add(delete);
String[] files = null;
try {
files = client.listNames();
for(String item: files){
model.addElement(item);
}
JList list = new JList(model);
list.setSelectionMode(0);
JScrollPane scroll = new JScrollPane(list);
scroll.setBounds(110, 10, 560, 630);
pane.add(scroll);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
window.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent windowEvent){
try{
client.disconnect();
client.logout();
}
catch (IOException localIOException) {}
System.exit(1);
}
});
window.setVisible(true);
}
}
エラーp1.OperaFTP.frame(OperaFTP.java:224)におけるスレッド "AWT-EventQueueの-0" java.lang.NullPointerExceptionが で例外p1.OperaFTP.login(OperaFTPで 。 Javaの:183) のjavaxでjavax.swing.AbstractButton $ Handler.actionPerformedでjavax.swing.AbstractButton.fireActionPerformedでp1.OperaFTP $ 2.actionPerformed(OperaFTP.java:161) (不明なソース) (不明なソース) で.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) (javax.swing.DefaultButtonModel.setPressed) (不明なソース)javax.swing.plaf.basic.BasicButtonListener.mouseReleasedで (不明なソース)java.awt.Component.processMouseEventで (不明なソース)javax.swing.JComponent.processMouseEventで (不明なソース) のjavaでjava.awt.Container.dispatchEventImplでjava.awt.Component.dispatchEventImpl(不明なソース) でjava.awt.Container.processEvent(不明なソース) で.awt.Component.processEvent(不明なソース) (不明なソース) java.awt.Component.dispatchEvent(不明なソース) at java.awt.LightweightDispatcher.retargetMouseEvent(不明なソース) at java.awt.LightweightDispatcher.processMouseEvent(不明なソース) at java.awt.LightweightDi spatcher.dispatchEvent(不明なソース)java.awt.Component.dispatchEventでjava.awt.Window.dispatchEventImpl(不明なソース) でjava.awt.Container.dispatchEventImpl(不明なソース) (不明なソース)は、Javaで で 。 (未知のソース) at java.awt.EventQueue $ 3.run(不明なソース) すべてjava.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilegeですべてjava.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(不明なソース) (不明なソース)でjava.security.AccessController.doPrivileged(ネイティブメソッド) で) すべてjava.security.ProtectionDomain $ JavaSecurityAccessImplでjava.awt.EventQueue $ 4.run(不明なソース)でjava.awt.EventQueue $ 4.run(不明なソース)で java.security.AccessController.doPrivileged(ネイティブメソッド) で java.awtでのjava.awt.EventDispatchThread.pumpEventsForFilter(不明なソース) でjava.awt.EventQueue.dispatchEvent(不明なソース)java.awt.EventDispatchThread.pumpOneEventForFiltersで (不明なソース) で.doIntersectionPrivilege(不明なソース) (不明なソース) at java.awt.EventDispa(イベントソース) tchThread。(不明な情報源)
は、あなたが完全なスタックトレースを投稿してくださいでした – Li357
はい、私は、スタックトレース – Lezorical
が追加されます?私はちょうど匿名アクセスでいくつかのFTPサーバー上であなたのコードを試して、それはファイルを表示します。ユーザー/パスワードが必要なサーバーを試しましたか? – Arjan