Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработка внешних данных, на Форме есть поле ... 
:(
    Опции темы
Su_
  Дата 16.8.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



у меня есть метод , которому нужно 2 переменные .
как сделать , на Форме .. 2 текстовых поля (для ввода чисел ) 
и по нажатию кнопочки подставить их в метод?



к примеру 
Код



for (int i = 1; i <= 20; i++)
            peerVis.addPeer(i);
//всего 20 пунктов    
    peerVis.connectPeers(2, 10, "msg1");

//аннимация из пункта 2 в пункт 10 




ну хочеться что бы вместо 2 и 10 , были вводимые числа .. )

 smile 



--------------------
user posted image

PM MAIL WWW   Вверх
lazycat
Дата 16.8.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



Вы, по сути, сами ответили на свой вопрос.
Делаете два текстовых поля и кнопку, с кнопкой связываете обработчик события ActionListener, конструктору обработчика передаете ссылки на текстовые поля и в методе actionPerformed() вызываете требуемый вам метод.
Если класс, содержащий формы и кнопку может сам быть обработчиком, то задача еще упрощается, не нужен конструктор, т.к. поля становятся непосредственно доступны из метода actionPerformed().
PM MAIL   Вверх
Su_
  Дата 16.8.2007, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



мне бы с синтаксисом помочь , а то туго , не знаю как ето в Java прописать ...))
 smile 


--------------------
user posted image

PM MAIL WWW   Вверх
lazycat
Дата 17.8.2007, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



Цитата(Su_ @ 16.8.2007,  23:07)
мне бы с синтаксисом помочь , а то туго , не знаю как ето в Java прописать ...))
 smile

Ну держите пример, но учтите, что это лишь одна из бесчисленных возможностей решения подобных задач.

Код

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


class Example 
{
JTextField f1;
JTextField f2;
JTextField f3;

static Example inst=null;  

  public static void main(String [] args) 
  {
  inst =new Example();
  JFrame f = new JFrame();
  f.setSize(500,400);

  inst.f1 = new JTextField();
  inst.f1.setColumns(10);
  inst.f2 = new JTextField();
  inst.f2.setColumns(10);
  inst.f3 = new JTextField();
  inst.f3.setColumns(10);
  JButton b1 = new JButton("Calculate");
  b1.addActionListener(new Handler(inst));  // !!!!!!!!!!!!

  JPanel p = new JPanel();
  p.add(inst.f1);
  p.add(inst.f2);
  p.add(b1);
  p.add(inst.f3);

  f.add(p);
// При работе с версией JDK < 1.5 предыдущая строка должна иметь вид
// f.getContentPane().add(p);
  
  f.setVisible(true);
  }

// А это ваш метод
public void soImportantCalculation(int a, int b)
  {
  inst.f3.setText("" + (a+b));
  }

}


class Handler implements ActionListener
{
Example cont = null;
public Handler(Example mc)
{
cont = mc;
}

    
public void actionPerformed(ActionEvent  e)
  {
  int x = new Integer(cont.f1.getText());
  int y = new Integer(cont.f2.getText());
  cont.soImportantCalculation(x, y);
  }
}    


PM MAIL   Вверх
Su_
Дата 17.8.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



b1.addActionListener(new Handler(inst));  // !!!!!!!!!!!!

тут пишет ошибочку , если встроить в мой код ,,,, не зря же тут //!!!!!!!!!!!!!!!!  ?

why why ? smile 


--------------------
user posted image

PM MAIL WWW   Вверх
_Michael
Дата 17.8.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



Какую ошыбочку? У меня етот код олично компилируется. Конечно не зря было бы обрабатывать нажатие кнопки при пустых полях каким-нить JOptionPane но ето уже детали smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Su_
Дата 17.8.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



non-static variable this cannot be referenced from a static context




код у меня немного другой :

Код

package peer;

import java.awt.Color;
import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

//my libr
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
//
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

import org.jgraph.JGraph;
import org.jgraph.graph.DefaultEdge;
import org.jgraph.graph.DefaultGraphCell;
import org.jgraph.graph.DefaultGraphModel;
import org.jgraph.graph.GraphConstants;
import org.jgraph.graph.GraphModel;
import org.omg.PortableServer.POAOperations;

public class PeerVis {
    
    JTextField f1;
JTextField f2;
JTextField f3;


    private static final int PEER_WIDTH = 40;
    private static final int PEER_HEIGHT = 20;
    private static final int COEFF = 10;
    private static final int RADIUS = 300;
    
    private static ArrayList<DefaultGraphCell> _cells;
    private static ArrayList<DefaultGraphCell> _peers;
    private static ArrayList<DefaultGraphCell> _msgs;
    private static JGraph _graph;
        static PeerVis inst=null; 
    @SuppressWarnings("static-access")
    public static void main(String[] args) {
            
            
            ///New my Button
            

  
  //

        // Construct Model and Graph
        GraphModel model = new DefaultGraphModel();
        _graph = new JGraph(model);
        // Control-drag should clone selection
        _graph.setCloneable(false);
        _graph.setBendable(false);
        _graph.setSelectionEnabled(false);
        _graph.setInvokesStopCellEditing(true);

        _graph.setJumpToDefaultPort(true);

        _cells = new ArrayList<DefaultGraphCell>();
        _peers = new ArrayList<DefaultGraphCell>();
        
        PeerVis peerVis = new PeerVis();

        // Show in Frame
        JFrame frame = new JFrame();
        frame.getContentPane().add(new JScrollPane(_graph));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
        frame.setSize(1000, 700);
                
                
             inst =new PeerVis();
 

  inst.f1 = new JTextField();
  inst.f1.setColumns(10);
  inst.f2 = new JTextField();
  inst.f2.setColumns(10);
  inst.f3 = new JTextField();
  inst.f3.setColumns(10);
  JButton b1 = new JButton("Calculate");
 
 b1.addActionListener(new Handler(inst) );


  JPanel frame1 = new JPanel();
  frame1.setSize(300,700);
  frame1.setLocation(700,0);
  frame1.setBackground(Color.lightGray);
  frame1.add(inst.f1);
  frame1.add(inst.f2);
  frame1.add(b1);
 frame1.add(inst.f3);

  _graph.add(frame1);
// При работе с версией JDK < 1.5 предыдущая строка должна иметь вид
// f.getContentPane().add(p);
  
  frame1.setVisible(true);
                
                
                
                
                
                
        
        for (int i = 1; i <= 20; i++)
            peerVis.addPeer(i);
        peerVis.connectPeers(2, 10, "msg1");
        peerVis.connectPeers(4, 16, "msg1");
        peerVis.connectPeers(10, 1, "msg1");
        
        peerVis.deletePeer(8);
    }

        
        class Handler implements ActionListener
{
PeerVis cont = null;
public Handler(PeerVis mc)
{
cont = mc;
}

    
public void actionPerformed(ActionEvent  e)
  {
  int x = new Integer(cont.f1.getText());
  int y = new Integer(cont.f2.getText());
  cont.soImportantCalculation(x, y);
  }
}    
        
        
        
        // А это ваш метод
public void soImportantCalculation(int a, int b)
  {
  inst.f3.setText("" + (a+b));
  }

//.....т . д 


 smile  smile  smile

Добавлено через 1 минуту и 4 секунды
у меня в чистом проекте , то же работает )) а в своем - нет , встроил не ауккуратно ,  где ошибочка не понятно ) smile 


--------------------
user posted image

PM MAIL WWW   Вверх
_Michael
Дата 17.8.2007, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



Ты обьявляеш класс Нandler после того как хочешь его использовать. Ты его или сделай в другом файле тоесть внешним, ане внутренним или обьяви его в начале твоего класса PeerVis  smile 


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Su_
Дата 17.8.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



                   smile            smile 
smile оо , спасибо , вопрос рЕшён!)))) smile 
                 smile              smile 


--------------------
user posted image

PM MAIL WWW   Вверх
_Michael
Дата 17.8.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



 smile Надо просто внимательно читать что за ошибка smile У меня писало что то типа cannot instantiate type Handler, a non-static variable this cannot be referenced from a static context ето из другой оперы. smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Su_
Дата 17.8.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



 smile  будем знать  smile 


--------------------
user posted image

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.