На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> JTextField , содержание JTextField
    ВОобщем у меня есть форма, на которой нарисован TextField, Label и кнопка. МНе нужно по нажатию кнопки получить текст введённый в текстовое поле.
    Инетресно вот что - как получить данные из текстового поля, после того как событие на кнопке уже обработано?
      С помощью метода getText() :huh: Или вы что-то иное имеет в виду?
        хм. дело в том, что getText не работает так, как я бы хотел.

        ExpandedWrap disabled
          btOk.addActionListener(new Authorize(tfId.getText(),tfPwd.getText(), conn));


        отправляет программу вот сюда:

        ExpandedWrap disabled
          class Authorize implements ActionListener
              {
              String Login,Password;
              Connection conn;
              
              public Authorize( String log , String pass, Connection connection )
              {
                  Login = log;
                  Password = pass;
                  conn = connection;
                  MainFrame frame = new MainFrame();
                  if (Login == "1" && Password == "1")
                      frame.Draw_Auth_Frame();
              }


        Но if никогда не проходит проверку. Без постановки условия метод Draw_Auth_Frame() работает, => проблема в
        ExpandedWrap disabled
          btOk.addActionListener(new Authorize(tfId.getText(),tfPwd.getText(), conn));


        а конкретнее в получении текста из Текстовых полей.
          Разумеется, у вас ничего не работает - вызывать tfId.getText() следует непосредственно в методе обработки события.
            Совершенно не представляю, как это реализовать в моём случае
            Сообщение отредактировано: Nort0n -
              Nort0n, подсказываю: на нажатие кнопки выполняется код в методе actionPerformed твоего класса Authorize, где в нем вызов tfId.getText()??? Правильно - нету. Вот поэтому у тебя и не работает :) В твоем случае в место строк log и pass в констурктор твоего класса Authorize нужно передать сами компоненты, из которых ты будешь считывать значения с помощью getText(). Хотя я бы сделал по-проще :) Не поленись, прочти пожалуйста часть туториала How to Write an Action Listener там в конце замечательные примеры :)
                Дело в том, что я рисую и пытаюсь вызвать метод текстового поля внутри класса

                ExpandedWrap disabled
                  public void Draw() throws SQLException
                      {
                          
                          JTextField tfId = new JTextField("",6);
                          JTextField tfPwd = new JTextField("",12);
                  ...


                а получать метод надо внутри класса

                ExpandedWrap disabled
                  class Authorize extends MainFrame implements ActionListener
                      {
                      String Login,Password;
                      Connection conn;
                      
                      public Authorize( String log, String pass, Connection connection )
                      {
                          Login = log;
                          Password = pass;
                          conn = connection;
                          MainFrame frame = new MainFrame();
                          if (Login == "1" && Password == "1")
                              frame.Draw_Auth_Frame();
                      }


                вот в чём проблема, я не могу понять, как мне получить текстовое поле и его методо вне рисуемого класса. (я прочёл туториал с примерами, там всё понятно, спасибо, но там всё происходит внутри одного класса, различны только методы)

                Добавлено
                Цитата

                В твоем случае в место строк log и pass в констурктор твоего класса Authorize нужно передать сами компоненты, из которых ты будешь считывать значения с помощью getText().


                0_o я разве не их передаю? И как это можно сделать проще?

                Добавлено
                я кажется понял, о чём вы, сейчас реализовал. судя по всему, имелось ввиду :

                ExpandedWrap disabled
                  btOk.addActionListener(new Authorize(tfId, tfPwd, conn));


                ExpandedWrap disabled
                  class Authorize extends MainFrame implements ActionListener
                      {
                      JTextField Login,Password;
                      Connection conn;
                      
                      public Authorize( JTextField log, JTextField pass, Connection connection )
                      {
                          Login = log;
                          Password = pass;
                          conn = connection;
                          MainFrame frame = new MainFrame();
                          if (Login.getText().toString() == "1" && Password.getText().toString() == "1")
                              frame.Draw_Auth_Frame();
                      }


                не работает к сожалению.

                Добавлено
                По хорошему, реализовывать стоит конешно вот так....НО, не работает :( не запускается frame.Draw_Auth_Frame(); да и строчки Dbg!!!!!! нет.

                ExpandedWrap disabled
                  class Authorize extends MainFrame implements ActionListener
                      {
                      JTextField Login,Password;
                      Connection conn;
                      
                      public Authorize( JTextField log, JTextField pass, Connection connection )
                      {
                          Login = log;
                          Password = pass;
                          conn = connection;      
                      }
                   
                  public void actionPerformed(ActionEvent event)
                      {  
                          MainFrame frame = new MainFrame();
                          if (Login.getText() == "1" && Password.getText() == "1"){
                              frame.Draw_Auth_Frame();
                          System.out.println("Dbg!!!!!");}
                          
                      }
                Сообщение отредактировано: Nort0n -
                  Nort0n, фраза "не работает" мало что говорит... По клику вообще actionPerformed начианет выполнятся? Поставь отладочное сообщение в первой строчке actionPerformed. А вообще, лучше код выложи целиком :)
                    начинает.

                    ПРошу

                    ExpandedWrap disabled
                      package Authorization;
                       
                      import java.awt.event.*;
                      import java.awt.*;
                      import javax.swing.*;
                       
                      import java.sql.*;
                       
                      public class Workspace {
                       
                          /**
                           * @param args
                           */
                          public static void main(String[] args) throws SQLException {
                              MainFrame frame = new MainFrame();
                              frame.Draw();
                              
                              
                       
                          }
                      }
                          
                      class SimpleFrame extends JFrame
                      {
                          public SimpleFrame( int Width , int Height , String title )
                          {
                              Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
                              setSize(Width,Height);
                              setLocation((screensize.width - Width)/2 ,(screensize.height-Height)/2);
                              setTitle(title);
                              
                          }
                          
                      }
                       
                      class Terminate implements ActionListener
                      {  
                          public void actionPerformed(ActionEvent event)
                          {
                              System.exit(0);
                          }
                      }
                       
                      class Authorize extends MainFrame implements ActionListener
                          {
                          JTextField Login,Password;
                          Connection conn;
                          
                          public Authorize( JTextField log, JTextField pass, Connection connection )
                          {
                              Login = log;
                              Password = pass;
                              conn = connection;  
                              
                          }
                          
                          
                          
                       boolean CheckData() throws SQLException
                          {
                              MainFrame Dr = new MainFrame();
                              Statement stat  = conn.createStatement();
                              ResultSet rs;
                              boolean fl= false;
                              rs = stat.executeQuery("SELECT * FROM Auth");
                              Dr.Draw_Auth_Frame();
                              while(rs.next())
                              {
                                  if (rs.getString(1).equals(Login) && rs.getString(2).equals(Password))
                                  {fl =  true;
                                  Dr.Draw_Auth_Frame();
                                  
                                  }
                                  
                                  else
                                      fl =  false;
                                  System.out.println("!!!");
                                  rs.next();
                              }
                              rs.close();
                              return fl;      
                          }
                          
                          public void actionPerformed(ActionEvent event)
                          {  
                              MainFrame frame = new MainFrame();
                              System.out.println(" Dbg ");
                              if (Login.getText() == "1" && Password.getText() == "1"){
                                  frame.Draw_Auth_Frame();
                              System.out.println("Dbg!!!!!");}
                              
                          }
                          
                      }
                      class MainFrame
                      { JTextField tfId ;
                      JTextField tfPwd;
                      Connection conn;
                          public void Draw() throws SQLException
                          {
                              SimpleFrame frame = new SimpleFrame(500,400,"Admin Session");
                              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                              frame.setVisible(true);
                              JPanel panel = new JPanel();
                              JPanel panelEdit = new JPanel();
                              JButton btClose = new JButton("Close");
                              JButton btOk = new JButton("Ok");
                              JTextField tfId = new JTextField("",6);
                              JTextField tfPwd = new JTextField("",12);
                              
                       
                              //Setting panel orientation
                              panel.setLayout(new FlowLayout(FlowLayout.CENTER));
                              panelEdit.setLayout(new GridLayout(2,2));
                       
                              // Add Buttons
                              
                              btOk.setBackground(Color.YELLOW);
                              btClose.setBackground(Color.YELLOW);        
                              //  Listeners of buttons
                       
                              btClose.addActionListener(new Terminate());
                              btOk.addActionListener(new Authorize(tfId, tfPwd, conn));
                              
                              panel.setBackground(Color.darkGray);
                              panel.add(btOk);
                              panel.add(btClose);
                              
                              
                              // Add EditBoxes
                              panelEdit.add(new JLabel(" Nick"));
                              panelEdit.add(tfId);
                              panelEdit.add(new JLabel(" Password"));
                              panelEdit.add(tfPwd);
                              
                              frame.setLayout(new BorderLayout());
                              frame.add(panel, BorderLayout.SOUTH);
                              frame.add(panelEdit, BorderLayout.CENTER);
                              frame.pack();
                       
                              
                          }
                          public void Draw_Auth_Frame() {
                              SimpleFrame frame = new SimpleFrame(500,400,"Admin Session");
                              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                              frame.setVisible(true);
                              JPanel panel = new JPanel();
                              JPanel panelEdit = new JPanel();
                              JButton btAdd = new JButton("Add");
                              JTextField tfAdd = new JTextField("",6);
                              
                       
                              //Setting panel orientation
                              panel.setLayout(new FlowLayout(FlowLayout.CENTER));
                              panelEdit.setLayout(new GridLayout(2,2));
                       
                              // Add Buttons
                              
                              btAdd.setBackground(Color.YELLOW);  
                              //  Listeners of buttons
                       
                              btAdd.addActionListener(new Terminate());
                              //this.Draw_Auth_Frame();
                                  
                              //}
                              panel.setBackground(Color.darkGray);
                              panel.add(btAdd);
                              
                              
                              // Add EditBoxes
                              panelEdit.add(new JLabel(" Add User"));
                              panelEdit.add(tfAdd);
                              
                              frame.setLayout(new BorderLayout());
                              frame.add(panel, BorderLayout.SOUTH);
                              frame.add(panelEdit, BorderLayout.CENTER);
                              frame.pack();
                          }
                          
                          
                      }
                      Nort0n, строки нельзя через == сравнивать, используй метод equals() :)
                        Спасибо :)
                          Nort0n, вообще нормальная IDE(как например IntelliJ Idea) подсвечивает сравнение строк через ==, давая понять что это не хорошо :)
                            у меня Eclipse. Он не ругался
                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0492 ]   [ 14 queries used ]   [ Generated: 19.05.24, 00:29 GMT ]