2012-03-04 7 views
1

私はJava swingの初心者ですから、JFileChooserとJListを統合するのに少し難しかったです。私の目標は、ダイアログボックス(JFileChooser)からファイルを選択して「追加」をクリックして、自動的にJListに追加され、同じメカニズムで「削除」されるようにすることです。私はいくつかのチュートリアルといくつかのヒントを試してみましたが、それはうまくいきません。あなたがこのステップで私を助けることができれば本当に素晴らしいことでしょう。 あらかじめありがとうございます!jFileChoserを介してjListにファイルを追加する

package examples; 

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.File; 

import javax.swing.DefaultListModel; 
import javax.swing.JButton; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.JLayeredPane; 
import javax.swing.JList; 
import javax.swing.JPanel; 
import javax.swing.JScrollBar; 
import javax.swing.JSplitPane; 
//import javax.swing.SwingConstants; 
class SplitPane extends JFrame 
{  

    private static final long serialVersionUID = 1L;  
    private JSplitPane splitPaneV;  
    private JSplitPane splitPaneH;  
    private JLayeredPane panel1;  
    private JPanel panel2;  
    private JPanel panel3;  
    private JButton add; 
    private JButton remove; 
    private JScrollBar scrollBar; 
    private JList list; 


    public SplitPane() 
    { 
     setTitle("AdditionalLoaderInformation");   
     setBackground(Color.blue);    
     JPanel topPanel = new JPanel();   
     topPanel.setLayout(new BorderLayout());   
     topPanel.setPreferredSize(new Dimension(700, 500));   
     getContentPane().add(topPanel); 

     // Create the panels   
     createPanel1();   
     createPanel2();   
     createPanel3();  

     // Create a splitter pane   
     splitPaneV = new JSplitPane(JSplitPane.VERTICAL_SPLIT);   
     topPanel.add(splitPaneV, BorderLayout.CENTER);   
     splitPaneH = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);   
     splitPaneH.setLeftComponent(panel1);   
     splitPaneH.setRightComponent(panel2);   
     splitPaneV.setLeftComponent(splitPaneH);   
     splitPaneV.setRightComponent(panel3); 

     scrollBar = new JScrollBar(); 
     scrollBar.setOrientation(JScrollBar.HORIZONTAL); 
     panel3.add(scrollBar, BorderLayout.SOUTH); 


     list = new JList(); 
     panel3.add(list, BorderLayout.CENTER); 
     }  
    public void createPanel1() 
    {   
     panel1 = new JLayeredPane();   
     panel1.setLayout(new BorderLayout()); 

    } 


    public void createPanel2() 
    {   
     panel2 = new JPanel(); 

     add = new JButton("ADD"); 
     final JFileChooser fileChooser = new JFileChooser(); 
     fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 

     add.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 
        ************************************ 

        } 
       }); 


     panel2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); 
     panel2.add(add); 

     remove = new JButton("REMOVE"); 
     remove.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
      removeActionPerformed(e); 
      } 

      private void removeActionPerformed(ActionEvent e) { 
       // TODO Auto-generated method stub 

      } 
     }); 
     panel2.add(remove);   



     }    

      public void createPanel3() 
      {  
       panel3 = new JPanel();  
       panel3.setLayout(new BorderLayout());  
       panel3.setPreferredSize(new Dimension(400, 100));  
       panel3.setMinimumSize(new Dimension(100, 50));   
       final JFileChooser fileChooser = new JFileChooser(); 
       fileChooser.setMultiSelectionEnabled(true); 
       //fileChooser.showOpenDialog(fileChooser); 
       fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
       fileChooser .setDialogTitle("OPEN"); 
       panel3.add(fileChooser, BorderLayout.NORTH); 

       //fileChooser.addActionListener(new ActionListener() 
       // {   
        // public void actionPerformed(ActionEvent e) 
        //{    




        // }  
        //});  
       } 

     public static void main(String args[]) {   
      // Create an instance of the test application   
      SplitPane mainFrame = new SplitPane();   
      mainFrame.pack();   
      mainFrame.setVisible(true);  
      } 
     } 
+5

あなたが最初に試したことを私たちに教えてください。 –

+0

私がすでに試したことを確認できたら助かります。上記の最初のクエリにコードを添付しました。前もって感謝します! – dmurali

答えて

2

あなたのチューのアクションリスナーに新しいファイル名を取得し、hereを示し、それを追加(またはから削除)リストのモデル、このexampleに示すように。

補遺:JListにファイルの内容を表示するには、text componentsのいずれかを使用して、適切なrendererを作成する必要があります。

+0

お返事ありがとうございます..!私は十分に私のクエリではっきりしていないかもしれませんが、私は実際にはJListに追加されたものを削除して削除するのが簡単になるようにファイル自体をコピーしたい。たとえば、random.txtという名前のファイルを選択すると、このファイルがJListにコピーされます。これは可能ですか?はいの場合、いくつかの例があるリンクを私に送ってもらえますか? – dmurali

+0

はい、上記の関連チュートリアルにリンクしました。あなたの質問の[sscce](http://sscce.org/)が進展するにつれて更新することができます。 – trashgod

+0

ありがとう:)それは働いた!私は今、JListにファイルを追加することができます。 – dmurali

2
  1. 読むthe JFileChooser tutorial
  2. 上記の手順が十分でない場合、JFileChooserのクラスのjavadocを見て、APPROVE_OPTIONgetSelectedFile方法に注意してください。これは、上記の手順が十分でない場合the JList tutorial
  3. を読むファイル
  4. を得ることができるようJListListModelの利用できるAPIを見て、特により多くの必要があるデフォルトの実装addremoveメソッドが含まれていDefaultListModel
+0

あなたの迅速な対応に感謝します!最初のクエリに自分のコードを追加しました。私はあなたに親切にそれを見て、どのように私はそれについて行くのか教えてください。前もって感謝します! – dmurali

関連する問題