JFileChooser
(JButton
을 통해 시작)에서 파일을 선택하고 나중에 사용할 수 있도록 테이블에 문자열 경로를 저장할 수있는 인터페이스를 설계 중입니다. 파일 선택을위한 코드는 TheHandler
클래스에 포함되어 있고 테이블은 클래스 FilePanel
내에 있습니다. 나는 filePath
의 값을 가지고 이 FilePanel
인데, 테이블에 문자열을 저장할 수 있습니다.Java - JFileChooser가있는 테이블에 문자열 경로를 저장하고, set 메소드를 얻으시겠습니까?
내 문제는 그러나 그 tablePath
반환 내가 생각 null
, 하나 이유는 사용자가 선택하기 전에
1) filePath
는 값이 tablePath
에 부여되는 void
방법
2)에 포함되어 파일
또는 1)과 2)의 조합. 그래서 내 질문에 filePath
값을 추출 할 수 있으므로 사용자가 파일을 선택한 후 tablePath
찍을 수 있습니다?
메소드를 얻고 설정하는 방법에 대해 생각하고 있습니다.하지만 방금 전에 만난 예제를 통해 actionPerformed(ActionEvent event)
생성자 내에서 사용해야한다고 생각 하겠지만, 그렇다면 그 일을하는 방법에 완전히 버려졌습니다. 어떤 도움이라도 대단히 감사하겠습니다.
TheHandler
클래스 :
public static class TheHandler implements ActionListener {
String filePath;
public void actionPerformed(ActionEvent event) {
Component parent = null;
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("TIFF Images", "tif", "tiff");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(parent);
filePath = chooser.getSelectedFile().toString();
//System.out.println(filePath);
if (returnVal == JFileChooser.APPROVE_OPTION) {
ImagePlus picture = IJ.openImage(filePath);
picture.show();
}
}
}
FilePanel
클래스 :
public class FilePanel extends JPanel {
public FilePanel() {
setLayout(new GridLayout(1, 0));
TheHandler thePath = new TheHandler();
String tablePath = thePath.filePath;
System.out.println(filePaths); // outputs null, this line runs before file is chosen?
String col[] = {"Loaded TIFF Files"};
String[] tiffFiles = {filePaths, filePaths}; // Vector or list may be more useful?
DefaultTableModel tableModel = new DefaultTableModel(col, 0);
tableModel.addRow(tiffFiles);
}
}
아, 사과 하긴하지만, 내 게시물에는 남지 않았습니다.하지만 ActionBener는 JButton과 결합되어 addBtn 프로세스를 시작합니다.addActionListener (new TheHandler()); 이것은 의미가 있지만, 내가이 일을 진짜 빨리 할 수 있는지 알게 해달라고하자. – Rosie
아하. 내가 틀렸다면 나에게 맞지만, innerPath 자체는 호출 될 수 없지만, getFilePath() 메소드를 생성하면 innerPath는 innerFilePath의 값을 취한다. 조건은 충족되며 getFilePath()는 innerFilePath를 반환하는 공용 메서드이므로 다른 클래스에서 해당 메서드를 호출 할 수 있습니다. – Rosie
사실, 괜찮다면 다른 질문이 있습니다. 생성 한 메서드는 void 메서드에서 원하는 파일 경로를 가져 오는 파일 선택기를 꺼내었지만 다른 클래스에서 해당 메서드를 호출하면 두 번째 파일 선택기가 열립니다 (로드 단추를 누를 때 첫 번째 파일 선택기가 열립니다). getFilePath() 메서드의 반환 값을 얻을 수있는 방법이 있나요? 그래서 다른 클래스에서 결과 문자열 값을 사용할 수 있습니까? – Rosie