2013-04-25 23 views
-1

你好我一直無法讓我的組合框列出文本文件中的項目。而當我在這時,我是否可以問,如果我的radioButton動態更改,當我更改我的combobx或將是太麻煩?在組合框中使用文本文件

import java.awt.GridLayout; 
import java.util.Arrays; 
import java.util.Scanner; 
import java.awt.event.*; 
import java.io.*; 
import javax.swing.*; 
import java.io.*; 

public class MovieSelection extends JFrame { 

private JRadioButton selection1; 
private JRadioButton selection2; 
private JRadioButton selection3; 
private JPanel moviePanel; 
private JLabel priceLabel; 

private JComboBox movieBox; 
private ButtonGroup bg; 

private String[] movieName = { "RED", "Taken", "Star Trek", "Star Wars", 
     "Avatar" }; 


public MovieSelection() { 
    super("Please select your movie"); 
    setSize(800, 400); 

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    setLayout(new GridLayout(15, 4)); 

    setLocationRelativeTo(null); 
    // PrintWriter outputFile = new PrintWriter(TheMovies.txt); 
    buildMoviePanel(); 

    add(moviePanel); 

    setVisible(true); 

} 



private class MovieLists implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 

     Scanner inputFile = new Scanner(TheMovies.txt); 

     while (inputFile.hasNext()) { 
      String nextMovieName = inputFile.nextLine(); 

     } 

     JComboBox cb = (JComboBox) e.getSource(); 
     String Themovie = (String) cb.getSelectedItem(); 

    } 

} 

}

+0

你想在組合框中輸入完整的文本文件嗎? – Apurv 2013-04-25 06:10:54

+0

你可以在這行'Scanner inputFile = new Scanner(TheMovies.txt);'in'actionPerformed'方法中找到任何錯誤 – 2013-04-25 06:12:00

+0

還有'JComboBox movieLists = new JComboBox(TheMovies.txt);' – Apurv 2013-04-25 06:13:24

回答

1

你寫了TheMovies.txt作爲一種表達,所以Java編譯器會尋找一個名爲TheMovies包含公共靜態成員類稱爲txt

你真正的意思是一個字符串,所以你必須把它們放在引號:

"TheMovies.txt" 

但是當你傳遞一個StringScanner constructor,該字符串本身將被掃描,而不是解釋作爲文件名。因此,您必須先從該字符串構造一個FilePath對象。

Scanner inputFile = new Scanner(new File("TheMovies.txt")); 

JComboBox movieLists = new JComboBox(TheMovies.txt); 

是錯誤出於同樣的原因被解釋爲表達式。不知道你在這裏的意圖是什麼,但我希望你能從中找到你自己的下一步。它應該是沿着遍歷文件內容並一次填充組合框一個項目的方式。