Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов метода описанного в другом файле 
:(
    Опции темы
platonos
Дата 26.4.2017, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мне просто нужен код ... smile 
PM MAIL   Вверх
vpf
Дата 26.4.2017, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

public class ClassM1 {
    public void methodM1() {

    }
}

public class ClassM2 {

    public void methodM2() {
        ClassM1 m1 = new ClassM1();
         m1.methodM1();   
    }
}

PM MAIL IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
platonos
Дата 27.4.2017, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот прога:

Код

//add.groovy
public class ClassM2 {
    public void methodM2(n) {
        ClassM1 m1 = new ClassM1();
         m1.methodM1(n); }
}
def Vvod() {print "Vvedite n = "; s = System.in.newReader().readLine(); n = s as Integer}
def Vivod() { print "sum = "; println sum}
while (1) {
  Vvod()
  methodM2(n)
  Vivod()
}

//chis.groovy
public class ClassM1 {
  public void methodM1(n) { sum = n + n}
}


Уважаемый vpf, IDE NetBeans при выполнении проекта пишет следующее:

init:
Deleting: C:\Groovy\add\build\built-jar.properties
deps-jar:
Updating property file: C:\Groovy\add\build\built-jar.properties
Compiling 2 source files to C:\Groovy\add\build\classes
compile:
run:
java.lang.NoClassDefFoundError: demo/DisplayDialog
Caused by: java.lang.ClassNotFoundException: demo.DisplayDialog
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: demo.DisplayDialog.  Program will exit.
Exception in thread "main" Java Result: 1
ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 3 секунд)


Вопрос - что не так, и как можно исправить код чтобы прога заработала  ...

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


Шустрый
*


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

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



Три файла, проект NetBeans.Groovy
Код

// Main.java файл
public class Main {

    public static void main(String args[]) {
        add m2 = new add();
        m2.run();
    }
}

Код

//add.groovy
public class ClassM2 {
    def methodM2(n) { ClassM1 m1 = new ClassM1(); def   sum = m1.methodM1(n); return sum }
}

def Vvod() {print "Vvedite n = "; s = System.in.newReader().readLine(); n = s as Integer}

def Vivod() { print "sum = "; println sum }

def Method() {    ClassM2 m2 = new ClassM2();  sum = m2.methodM2(n)}

def sum
while (1) {
    Vvod()
    Method()
    Vivod()
}

Код

//chis.groovy
public class ClassM1 {
    def methodM1(n) { int  sum = n + n ; return sum }
}

Все работает, ругается что не может найти ClassM1, но компилируется и запускается, прикрепляю картинку.
PS: Похоже это известная проблема и мне надо обновить NetBeans, как вариант переименуете chis в ClassM1 и ошибка уйдет.

Это сообщение отредактировал(а) vpf - 27.4.2017, 13:28

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  5.png 59,50 Kb
PM MAIL IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
platonos
Дата 3.5.2017, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

// Main.java файл
public class Main {
    public static void main(String args[]) {
        ArabRim m2 = new ArabRim();
        m2.run();
    }
}

Код

//ArabRim.java
class ArabRim {
  void run() {
    throw new UnsupportedOperationException("Not yet implemented");
    }
}

Код

//Arab_Rim.groovy
package demo
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.FlowLayout

public class ClassM2 {
    def methodM2(Arab) { m1 =  ClassM1(); def Rim = m1.methodM1(Arab); return Rim }
}
def Method() {ClassM2 m2 = new ClassM2();  Rim = m2.methodM2(Arab)}

swinger = new SwingBuilder()
  gui = swinger.frame(title:'!!!!!', size: [510, 160]) {
    panel(layout: new FlowLayout()) {    
        message1 = textField(columns: 12)
          button = swinger.button(text: 'Вычислить', actionPerformed: {
                   JOptionPane.showMessageDialog(gui, Method(message1.text))})
}}
gui.show()

Код

//ClassM1.groovy
public class ClassM1 {
    def methodM1 (Arab1) { Arab = Arab1 as Integer; int Rim = Arab + Arab; return Rim}
}

Уважаемый vpf,  это моя попытка применить Ваш ответ для проги с графическим интерфейсом (Swing конечно ...)
Если Вы удосужитесь "прогнать"  её на выполнение, то увидите что она не работает ...
Вопрос у меня всё тот же - как изменить прогу чтобы она работала?...

Это сообщение отредактировал(а) platonos - 3.5.2017, 21:14
PM MAIL   Вверх
vpf
Дата 4.5.2017, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

//Main.java
public class Main {
      public static void main(String args[]) {
        ArabRim m2 = new ArabRim();
        m2.run();
    }
}


Код

//ArabRim.groovy
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.FlowLayout

public class ArabRim {
    
        
    public class ClassM2 {
        def methodM2(Arab) {
            ClassM1 m1 = new ClassM1(); 
            def Rim = m1.methodM1(Arab); 
            return Rim 
        }
    }

    def Method(String s) {
        if(s.length() == 0 || !s.isInteger()) {
            return "wrong integer number";
        }

        def Arab = s as Integer
        ClassM2 m2 = new ClassM2()
        def Rim = m2.methodM2(Arab)
        return Rim 
    }
    
    void run() {
        def swingBuilder = new SwingBuilder()
                    
        def resultsPanel = {
            swingBuilder.panel(layout: new FlowLayout()) {    
                message1 = textField(columns: 24)
                button (text: 'Вычислить', actionPerformed: {
                        JOptionPane.showMessageDialog(null,Method(message1.text))
                    }
                )
            }
        }
        
        swingBuilder.frame(title:'!!!!!', 
            size: [510, 160], show:true,
            locationRelativeTo: null,
            defaultCloseOperation: javax.swing.WindowConstants.EXIT_ON_CLOSE ) {
            resultsPanel();
        }
    }
}




Код

//ClassM1.groovy
class ClassM1 {
    def methodM1(n) { int  sum = n + n ; return sum }    
}

Картинка с результатом в приложении.

Это сообщение отредактировал(а) vpf - 4.5.2017, 14:59

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  10.png 7,76 Kb
PM MAIL IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
platonos
Дата 10.5.2017, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемый vpf  IDE "ругается" на строке 9 следующими словами:

Определение класса не ожидается здесь. Возможная попытка использовать внутренний класс.
Внутренние классы не поддерживаются, возможно, попробуйте использовать замыкание.
Строка: 9: 3. Файл: ArabRim.groovy @ строка 9, столбец 3.

Судя по картинке у Вас прога работает нормально -  в чём же может быть ошибка ...
PM MAIL   Вверх
vpf
Дата 10.5.2017, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если внутренние классы не поддерживаются, вынесите ClassM2 во внешний файл  ClassM2.groovy
PM MAIL IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
platonos
Дата 11.5.2017, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот уважаемый vpf то к чему я стремился ... smile 
Код работает в IDE, но как отдельная прога нет, и
мне что то не хочется с этим возиться ... smile 
Код

//Main.java
public class Main {
      public static void main(String args[]) {
        chislo m2 = new chislo();
        m2.run();
    }
}

Код

//chislo.groovy
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.FlowLayout

public class ArabRim_2 {
  def Arabrim_2(Arab) { ArabRim m2 = new ArabRim(); def   Rim = m2.Arabrim(Arab); return Rim }}
  def Arab_Rim(Arab) {ArabRim_2 m3 = new ArabRim_2();  Rim = m3.Arabrim_2(Arab)}

public class RimArab_2 {
  def Rimarab_2(Rim) { RimArab m1 = new RimArab(); def   Arab = m1.Rimarab(Rim); return Arab }}
  def Rim_Arab(Rim) {RimArab_2 m2 = new RimArab_2();  Arab = m2.Rimarab_2(Rim)}

  swinger = new SwingBuilder()
  gui = swinger.frame(title:'Арабские << >> Римские', size: [510, 160]) {
    panel(layout: new FlowLayout()) {
    arabrim =  new JLabel('Это приложение переводит из Арабской системы счисления в Римскую и обратно!')
    arabrim.setBorder(BorderFactory.createEtchedBorder()); panel().add(arabrim)
    panel(layout: new FlowLayout()) {
      arab = new JLabel('Арабское  число:'); panel().add(arab)
        message1 = textField(columns: 12)
          button = swinger.button(text: 'Вычислить', actionPerformed: {
                   JOptionPane.showMessageDialog(gui, Arab_Rim(message1.text))})
          button = swinger.button(text: 'Очистить', actionPerformed: {
                   message1.selectAll(); message1.cut()})}
      rim  = new JLabel('Римское__число:'); panel().add(rim)
        message2 = textField(columns: 12)
          button = swinger.button(text: 'Вычислить', actionPerformed: {
                   JOptionPane.showMessageDialog(gui, Rim_Arab(message2.text))})
          button = swinger.button(text: 'Очистить', actionPerformed: {
                   message2.selectAll(); message2.cut()})}}
gui.show()

Код

//ArabRim.groovy
public class ArabRim {
    String Rim, A, r, r2, r1
    Integer i, x, iI, iV, iX, x1
    List L, rim = [ "I", "V", "X", "L", "C", "D", "M"]
  def Arabrim (Arab) {
    A = Arab.reverse(); i = 0; L = []
  for( v in A){ x = v as Integer; iI = i*2; iV = 2*i+1; iX = 2*i+2
    switch (x){
      case 4:    r  = rim[iI] + rim[iV]; break
      case 9:    r  = rim[iI] + rim[iX]; break
      case 1..3: r  = ""; for( int j = 0; j < x;  j++){ r  = r  + rim[iI]}; break
      case 5..8: r2 = ""; x1 = x - 5; for( int j = 0; j < x1; j++){ r2 = r2 + rim[iI]}; r1 = rim[iV]; r = r1 + r2; break
      case 0:    r  = ""; break }
           ++i; L = L + r }
    Rim = L.reverse().join(); return Rim } }

Код

//RimArab.groovy
public class RimArab {
    String  f; Integer Arab
    Map rimArab = ["I":1, "V":5, "X":10, "L":50, "C":100, "D":500, "M":1000]
  def Rimarab (Rim) {
    f = Rim.replace("IV", "IIII").replace("IX", "VIIII").replace("XL", "XXXX").replace("XC", "LXXXX").replace("CD", "CCCC").replace("CM", "DCCCC")
    Arab = 0; for(i in f) { Arab = Arab + rimArab[i]}; return Arab } }

Код

class chislo {
    void run() {
        throw new UnsupportedOperationException("Not yet implemented");
    }
}


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


Шустрый
*


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

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



Поздравляю!
PM MAIL IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
platonos
Дата 30.5.2017, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемый vpf, теперь я пытаюсь усовершенствовать прогу
для того, что бы  при введённых числах в строковых компонентах
вычисление чисел другой системы счисления происходило при
нажатии Enter ...
Пока у меня есть следующее:
Код

message1.addActionListener( actionPerformed: { swinger.optionPane(message: \
                                      "Арабское $message1.text  ==>  Римское ${Arab_Rim(message1.text)}"). \
                                      createDialog(null, 'Арабские в Римские').show()} )

Код не работает ...
Просьба предоставить работающий код ...  smile 
PM MAIL   Вверх
platonos
Дата 12.6.2017, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот работающий фрагмент кода:
 
Код

message1 = textField(columns: 12)
          button11 = swinger.button(text: 'Вычислить', \
            actionPerformed: { swinger.optionPane(message: \
                               "Арабское $message1.text  ==>  Римское ${Arab_Rim(message1.text)}"). \
                               createDialog(null, 'Арабские в Римские').show()})
             JRootPane rootPane1 = SwingUtilities.getRootPane(button11)
                                   rootPane1.setDefaultButton(button11)

Только вот одна незадача - не получается применить этот код так же и к другой кнопке ...
 По идеи задачу можно решить так, что бы одна кнопка (button11 ) срабатывала при нажатии
Ctrl + A, а другая при Ctrl + R ...
Просьба предоставить код для (Ctrl + A) ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Groovy & Grails | Следующая тема »


 




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


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

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