Проблемы java получить значение поля

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by J0cker, 15 Aug 2013.

  1. J0cker

    J0cker New Member

    Joined:
    27 Feb 2010
    Messages:
    62
    Likes Received:
    4
    Reputations:
    0
    Всем привет.Пишу приложение на яве столкнулся с проблемой а именно в дочерней форме (Форма открываемая по нажатию кнопки в основной форме) получить строку которую выбрал пользователь. Пишу на базе примера который валялся в сети дабы сэкономить время.
    изначально вторую форму сделал отдельным классом как не извращался значение текстового поля я не смог получить во втором классе.Сижу любуюсь на код уже 4 день.
    Вот код основной формы

    Code:
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    
    import javax.swing.*;
    import javax.swing.tree.*;
    import javax.swing.border.*;
    import javax.swing.event.*;
    
    
    
    
    public class Inter
    
        extends JWindow  {
    	
        /**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	public static final String APP_NAME = "Directories Tree";
        public static final ImageIcon ICON_COMPUTER =new ImageIcon("computer.gif");
        public static final ImageIcon ICON_DISK =new ImageIcon("disk.gif");
        public static final ImageIcon ICON_FOLDER =new ImageIcon("folder.gif");
        public static final ImageIcon ICON_EXPANDEDFOLDER =new ImageIcon("expandedfolder.gif");
        
        protected JTree  m_tree;
        protected DefaultTreeModel m_model;
        protected JTextField m_display;
        protected JTextField m_dis;
       
        
       
        
        
        public Inter() {
        	
        	
    		   	 
            setSize(1024, 768);//Размер окна
           //////////////////////////////////////////////////////////// 
            
          //Обьявление действий кнопок
    		//  mous clic=new mous(); 
    		  Close exit=new Close();
    		  Print pri=new Print();
    		  
    		 // sell next=new sell();
            //создаем кнопки  
         JButton pr1 = new JButton ("Открыть");
       	 pr1.setBounds(800, 100, 155, 50);
       	 
       	 
       	 final JButton pr2 = new JButton ("Печать");
       	 pr2.setBounds(800, 300, 155, 50);
       	 
       	 
       	 
       	 JButton pr3 = new JButton ("Извлечь устройство");
       	 pr3.setBounds(800, 500, 155, 50);
       	
       	 //Убираем рамку на кнопках
       	 pr1.setFocusPainted(false);
       	 pr2.setFocusPainted(false);
       	 pr3.setFocusPainted(false);
       	 
       	 
       	 //Пытаемся оживить кнопку 2
       	 
       	 
       	
       	 add(pr1);
       	 add(pr2);
       	 add(pr3);
       	 //   	 
       	 pr2.addActionListener(pri);
       	 pr3.addActionListener(exit);
       	 
       	 //pr1.addActionListener(next);		 
       	 
       	 
       	 
       	 //Панель
       	JPanel panel = new JPanel();
    	panel.setLayout(new BorderLayout());
    	panel.setBounds(50, 70, 550, 600);
    	panel.setBackground(Color.green);
    	
    	add(panel);
    	
    	//
       	
       	 //////////////////////////////////////////////////////////////////////////////
          
            
            DefaultMutableTreeNode top = new DefaultMutableTreeNode(new IconData(ICON_COMPUTER, null, "Носитель"));
            DefaultMutableTreeNode node;
            
            File flash = new File("d://");
            File[] roots = flash.listFiles();
            
            for (int k=0; k<roots.length; k++) {
            	
                node = new DefaultMutableTreeNode(new IconData(ICON_DISK,null, new FileNode(roots[k])));
                top.add(node);
                node.add( new DefaultMutableTreeNode(new Boolean(true)));
            }
            
            m_model = new DefaultTreeModel(top);
            m_tree = new JTree(m_model);
            m_tree.putClientProperty("JTree.lineStyle", "Angled");
            
            IconCellRenderer renderer = new IconCellRenderer();
            m_tree.setCellRenderer(renderer);
            m_tree.addTreeExpansionListener(new DirExpansionListener());
            m_tree.addTreeSelectionListener(new DirSelectionListener());
            m_tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
            m_tree.setShowsRootHandles(true);
            m_tree.setEditable(false);
            
            JScrollPane s = new JScrollPane();
            
            s.getViewport().add(m_tree);
            
            getContentPane().add(s, BorderLayout.CENTER);
            
            
    
    
            m_display = new JTextField();
            m_display.setEditable(false);
            m_display.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
            getContentPane().add(m_display, BorderLayout.NORTH);
            panel.add(s);
           
            
            
            ///////
            
            Font font = new Font("Verdana", Font.PLAIN, 20);
            m_tree.setFont(font);
            ////////////Шрифты компонентов 
    
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        }
        DefaultMutableTreeNode getTreeNode(TreePath path) {return (DefaultMutableTreeNode)(path.getLastPathComponent());
        }
        FileNode getFileNode(DefaultMutableTreeNode node) {
            if (node == null)
                return null;
            Object obj = node.getUserObject();
            if (obj instanceof IconData)
                obj = ((IconData)obj).getObject();
            if (obj instanceof FileNode)
                return (FileNode)obj;
            else
                return null;
        }
        // Make sure expansion is threaded and updating the tree model
        // only occurs within the event dispatching thread.
       public class DirExpansionListener implements TreeExpansionListener {
            public void treeExpanded(TreeExpansionEvent event) {
                final DefaultMutableTreeNode node = getTreeNode(
                    event.getPath());
                final FileNode fnode = getFileNode(node);
                Thread runner = new Thread() {
                    public void run() {
                        if (fnode != null && fnode.expand(node)) {
                            Runnable runnable = new Runnable() {
                                public void run() {
                                    m_model.reload(node);
                                }
                            };
                            SwingUtilities.invokeLater(runnable);
                        }
                    }
                };
                runner.start();
            }
            public void treeCollapsed(TreeExpansionEvent event) {}
        }
       public class DirSelectionListener
            implements TreeSelectionListener {
            public void valueChanged(TreeSelectionEvent event) {
                DefaultMutableTreeNode node = getTreeNode(
                    event.getPath());
                FileNode fnode = getFileNode(node);
                if (fnode != null)
                    m_display.setText(fnode.getFile(). getAbsolutePath());
                else
                    m_display.setText("");
                
               
                
                
                
                
                
    			}
               
            
    		 
            
            }
       
       
       
        
        public static void main(String argv[]) {
            Inter frame = new Inter();
            
            frame.setVisible(true);
        }
    }
    class IconCellRenderer
        extends    DefaultTreeCellRenderer {
        public IconCellRenderer() {
            setLeafIcon(null);
            setOpenIcon(null);
        }
        public Component getTreeCellRendererComponent(JTree tree,
            Object value, boolean sel, boolean expanded, boolean leaf,
            int row, boolean hasFocus) {
            // Invoke default implementation
            Component result = super.getTreeCellRendererComponent(tree,
                value, sel, expanded, leaf, row, hasFocus);
            DefaultMutableTreeNode node =
                (DefaultMutableTreeNode)value;
            Object obj = node.getUserObject();
            setText(obj.toString());
            if (obj instanceof Boolean)
                setText("Retrieving data...");
            if (obj instanceof IconData) {
                IconData idata = (IconData)obj;
                if (expanded)
                    setIcon(idata.getExpandedIcon());
                else
                    setIcon(idata.getIcon());
            }
            else
                setIcon(null);
            return result;
        }
    
    }
    
    
    class IconData {
        protected Icon   m_icon;
        protected Icon   m_expandedIcon;
        protected Object m_data;
        public IconData(Icon icon, Object data) {
            m_icon = icon;
            m_expandedIcon = null;
            m_data = data;
        }
        public IconData(Icon icon, Icon expandedIcon, Object data) {
            m_icon = icon;
            m_expandedIcon = expandedIcon;
            m_data = data;
        }
        public Icon getIcon() {
            return m_icon;
        }
        public Icon getExpandedIcon() {
            return m_expandedIcon!=null ? m_expandedIcon : m_icon;
        }
        public Object getObject() {
            return m_data;
        }
        public String toString() {
            return m_data.toString();
        }
    }
    class FileNode {
        protected File m_file;
        public FileNode(File file) {
            m_file = file;
        }
        public File getFile() {
            return m_file;
        }
        public String toString() {
            return m_file.getName().length() > 0 ? m_file.getName() :
                m_file.getPath();
        }
        // Alternatively we copud sub-class TreeNode
        public boolean expand(DefaultMutableTreeNode parent) {
            DefaultMutableTreeNode flag =
                (DefaultMutableTreeNode)parent.getFirstChild();
            if (flag==null)   // No flag
                return false;
            Object obj = flag.getUserObject();
            if (!(obj instanceof Boolean))
                return false;      // Already expanded
            parent.removeAllChildren();  // Remove Flag
            File[] files = listFiles();
            if (files == null)
                return true;
            Vector v = new Vector();
            for (int k=0; k<files.length; k++) {
                File f = files[k];
                if (!(f.isDirectory()))
                    continue;
                FileNode newNode = new FileNode(f);
                boolean isAdded = false;
                for (int i=0; i<v.size(); i++) {
                    FileNode nd = (FileNode)v.elementAt(i);
                    if (newNode.compareTo(nd) < 0) {
                        v.insertElementAt(newNode, i);
                        isAdded = true;
                        break;
                    }
                }
                if (!isAdded)
                    v.addElement(newNode);
            }
            for (int i=0; i<v.size(); i++) {
                FileNode nd = (FileNode)v.elementAt(i);
                IconData idata = new IconData(Inter.ICON_FOLDER,
                    Inter.ICON_EXPANDEDFOLDER, nd);
                DefaultMutableTreeNode node = new
                    DefaultMutableTreeNode(idata);
                parent.add(node);
                if (nd.hasSubDirs())
                    node.add(new DefaultMutableTreeNode(
                        new Boolean(true) ));
            }
            return true;
        }
        
        public boolean hasSubDirs() {
            File[] files = listFiles();
            if (files == null)
                return false;
            for (int k=0; k<files.length; k++) {
                if (files[k].isDirectory())
                    return true;
            }
            return false;
            
        }
        public int compareTo(FileNode toCompare) {
            return  m_file.getName().compareToIgnoreCase(
                toCompare.m_file.getName() );
        }
        protected File[] listFiles() {
            if (!m_file.isDirectory())
                return null;
            try {
                return m_file.listFiles();
            }
            catch (Exception ex) {
                JOptionPane.showMessageDialog(null,"Error reading directory "+m_file.getAbsolutePath(),
                    Inter.APP_NAME, JOptionPane.WARNING_MESSAGE);
                return null;
                
                
                //////////////////
                
               
                
            }
        }
    }
    

    Код второй формы

    Code:
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dialog;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.JWindow;
    import javax.swing.border.BevelBorder;
    import javax.swing.border.SoftBevelBorder;
    
    public class Print implements ActionListener {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				//код кнопки
    			
    			final	JWindow MyFrame2=new JWindow ();
    				
    				MyFrame2.setBounds(250, 250, 500, 200);
    				
    				   MyFrame2.setVisible(true);
    				   
    				   Close exiq=new Close();
    				   
    				   
    					 // Print prin1=new Print();
    				 
    				   JButton prin = new JButton ("Печатать");
    				   	 prin.setBounds(30, 130, 155, 50);
    				   	 
    				   	 
    				   	 JButton exi = new JButton ("Отмена");
    				   	 exi.setBounds(315, 130, 155, 50);
    				   	 
    				   	 
    				   	 
    				   	prin.setFocusPainted(false);
    				   	 exi.setFocusPainted(false);
    				   	 
    				   	 
    				   	 
    				   	 //Пытаемся оживить кнопку 2
    				   	 
    				   	 
    				   	
    				   MyFrame2.add(prin);
    				   MyFrame2.add(exi);
    				   
    				  // prin.addActionListener(prin1);
    				   	 exi.addActionListener(new ActionListener(){
    				         public void actionPerformed(ActionEvent e){                
    				              MyFrame2.dispose();
    				         }
    				   });
    				   //запрет на изменение размера
    				   
    				   MyFrame2.setLayout(null);
    				  // ///////////////////////////////////////
    				   ////////////////Панели
    				   
    				   JPanel panel = new JPanel();
    					panel.setLayout(new BorderLayout());
    					panel.setBounds(0, 70, 500, 50);
    					panel.setBackground(Color.green);
    					JPanel panel2 = new JPanel();
    					panel2.setLayout(new BorderLayout());
    					panel2.setBounds(0, 10, 500, 50);
    					panel2.setBackground(Color.red);
    					MyFrame2.add(panel);
    					MyFrame2.add(panel2);
    					
    				  //////////////////////////
    					
    				//	Одну сделать меткой вторую хз тож можно 
    					JTextField text =new JTextField("Распечатать документ ?");
    					text.setEditable(false);
    					
    					panel2.add(text);
    					
    					
                         JTextField text2 =new JTextField();
                         text2.setEditable(false);
                         
    					 panel.add(text2);
    				   
    				   //////////////////////////////////////////////////////
    				}
    				
    				
    				
    			}
    
    
    


    ссылка на скрин формы
     
  2. notkeo

    notkeo New Member

    Joined:
    24 Dec 2011
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Давай для начала разберемся, слышал ли ты о паттерне MVC или по прежнему быдлокодишь как попало? У тебя должен быть 1 контроллер который управляет всем UI. Короче отправляйся гуглить. И господи пожалуйста используй CamelCase, режет глаза сишные имена.
     
Loading...
Similar Threads - Проблемы java получить
  1. b3
    Replies:
    4
    Views:
    3,360