无法在以下代码中添加Scroll窗格..?

时间:2015-04-11 08:13:58

标签: java swing

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

class Note implements ActionListener
{
   JFrame jf;
   JMenuBar menubar;
   JMenu file,edit,search,about_me;
   JMenuItem menuitem;
   JFileChooser jfc;
   JTextArea area=new JTextArea();
   JScrollPane jp;

   Note(String k)
   {
      jfc=new JFileChooser("e:\\java");

      jf=new JFrame(k);
      menubar=new JMenuBar(); 

      file=new JMenu("File");
      file.setMnemonic(KeyEvent.VK_F);

      menuitem=new JMenuItem("New");
      menuitem.setActionCommand("New");
      menuitem.addActionListener(this);
      menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
      file.add(menuitem);

      menuitem=new JMenuItem("Open");
      menuitem.setActionCommand("open");
      menuitem.addActionListener(this);
      menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));
      file.add(menuitem);

      menuitem=new JMenuItem("Save");
      menuitem.setActionCommand("save");
      menuitem.addActionListener(this);
      menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
      file.add(menuitem);

      menuitem=new JMenuItem("Save as...");
      menuitem.setActionCommand("save_as");
      menuitem.addActionListener(this);
      file.add(menuitem);

      file.addSeparator();
      menuitem=new JMenuItem("Exit");
      menuitem.setActionCommand("exit");
      menuitem.addActionListener(this);
      file.add(menuitem);

      jf.add(area);
      jf.setVisible(true);
      jf.setSize(400,400);
      menubar.add(file);
      //menubar.add(edit);
      jf.setJMenuBar(menubar);
   }

   public void actionPerformed(ActionEvent e)
   {
      if(e.getActionCommand().equals("New"))
         area.setText("NEw");
      if(e.getActionCommand().equals("open"))
      {
         String m=open(jfc);
         System.out.println(m);
         try{
            FileInputStream p=new FileInputStream(m);
            int i=0;char k;String k1="";
            while((i=p.read())!=-1)
            {
               k=(char)i;
               k1=k1.valueOf(k);
               area.append(k1);}
               //System.out.println(k1);
               p.close();
            }
            catch(Exception e1){
               System.out.println(e1);
            }
      }

      if(e.getActionCommand().equals("save"))
      {
          String m=save(jfc);
          try{
             FileWriter fw=new FileWriter(m,true);
             String s=area.getText();
             char ch[]=s.toCharArray();
             for(int i=0;i<ch.length;i++)
             fw.write(ch[i]);
             fw.close();
          }
          catch(Exception e1)
          {
              System.out.println("Exception occurs"+e1);
          }
      }
      if(e.getActionCommand().equals("save_as"))
         area.setText("save_as");

      if(e.getActionCommand().equals("exit"))
         System.exit(0);
   }

   public static String open(JFileChooser jfc) 
   {
      int x=jfc.showOpenDialog(null);
      if(x==JFileChooser.APPROVE_OPTION)
      {
         File f=jfc.getSelectedFile();
         String w=f.getPath();
         char ch[]=w.toCharArray();
         for(int i=0;i<ch.length;i++)
         {
            if(ch[i]==92)
               ch[i]=47;
         }
         String w1=new String (ch);
         return w1; 
      }
      else return null;
   }

   public static String save(JFileChooser jfc) 
   {
      int x=jfc.showSaveDialog(null);
         if(x==JFileChooser.APPROVE_OPTION)
         {
            File f=jfc.getSelectedFile();
            String w=f.getPath();
            char ch[]=w.toCharArray();
            for(int i=0;i<ch.length;i++)
            {
               if(ch[i]==92)
               ch[i]=47;
            }
         String w1=new String (ch);
         return w1; 
      }
      else return null;
   }

   public static void main(String... s)
   {
      new Note("Ankit");
   }
}

实际上,当我第一次在Scable上使用Scrollpane时。所以它完美地添加了,但这次不是。我为Jscrollpane创建了一个参数变量,当我创建一个这样的实例时,我给.... // jsp = new JScrollPane(area); 但没有任何反应。它似乎与布局有关。所以任何人都可以帮我解决这个问题。

0 个答案:

没有答案