В этом разделе обсуждается всё, что связанно с Java ...
И если это так, тогда я буду в этой теме задавать вопросы про Groovy
А если не так -
Добавлено (13 апреля 2017, 20:08)
---------------------------------------------
Как можно из одного файла вызвать метод описанный в другом файле?...
Добавлено (08 мая 2017, 23:58)
---------------------------------------------
Наверное, стоило бы назвать эту тему "Вопросы - ответы", а то как то глухо ...
Приходиться отвечать на свой вопрос самому:
Код
// Main.java
public class Main {
public static void main(String args[]) {
chis m2 = new chis();
Object run = m2.run();
pro m3 = new pro();
m3.run();
}
}
Код
//pro.java
class pro {
public pro() {
}
void run() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
Код
//chis.groovy
public class RimArab_2 {
def Rimarab_2(Rim) { RimArab m1 = new RimArab(); def Arab = m1.Rimarab(Rim); return Arab }}
def Method() {RimArab_2 m2 = new RimArab_2(); Arab = m2.Rimarab_2(Rim)}
public class ArabRim_2 {
def Arabrim_2(Arab) { ArabRim m2 = new ArabRim(); def Rim = m2.Arabrim(Arab); return Rim }}
def Method2() {ArabRim_2 m3 = new ArabRim_2(); Rim = m3.Arabrim_2(Arab)}
def Vvod() {print "Vvedite Rim = "; Rim = System.in.newReader().readLine()}
def Vivod() { print "Arab = "; println Arab }
def Vvod2() {print "Vvedite Arab = "; Arab = System.in.newReader().readLine()/* ; Arab = s as Integer*/}
def Vivod2() { print "Rim = "; println Rim }
while (1) {
Vvod()
Method()
Vivod()
Vvod2()
Method2()
Vivod2()
}
Код
//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
}
}
Код
//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
}
}
Делалось и компоновалось всё это в NetBeans.Добавлено (10 Февраля 2018, 20:38)
---------------------------------------------
Игрушка puzzle :
Код
//puzzle.groovy
package groovy
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.FlowLayout
import java.util.*
import java.awt.*
import java.awt.event.*
jfrm = new JFrame('N-размерный puzzle')
gbag = new GridBagLayout()
gbc = new GridBagConstraints()
gbc.fill = GridBagConstraints.BOTH
jfrm.getContentPane().setLayout(gbag)
jfrm.setSize(550, 550)
btnDim = new Dimension(50, 50)
gbc.weightx = 0.0
gbc.insets = new Insets(0, 0, 0, 0)
//N = Math.round(Math.random()*10); if (0 <= N && N <= 2) {N = 4} else {return N}
public class Spisok_2 {def spisok_2(N) {Spisok m1 = new Spisok(); def order = m1.spisok(N)}}
def spisok(N) {m2 = new Spisok_2(); order = m2.spisok_2(N)}
N = 3
chisla = [1, 2, 3, 4, 5, 6, 7, 8]//spisok(N)
Tablica(N)
jfrm.setVisible(true)
def Tablica(N) {for (int I = 0; I < N**2 - 1; I++) {knopka(N, I)}}
def knopka(N, I) {
Y = (int)(I/N); X = I%N
jbtnCh = new JButton(text: chisla[I], actionPerformed: {e -> e.getSource().setText(null); Poisk(N, I)})
gbc.gridy = Y+1; gbc.gridx = X+1
jbtnCh.setPreferredSize(btnDim)
gbag.setConstraints(jbtnCh, gbc)
jfrm.getContentPane().add(jbtnCh)
}
def Poisk(N, I) {
if (((F = I-N) >= 0 && chisla[F] == null) ||
((F = I+1) < N**2 && chisla[F] == null) ||
((F = I+N) < N**2 && chisla[F] == null) ||
((F = I-1) >= 0 && chisla[F] == null))
{chisla[F] = chisla[I]; knopka(N, F); chisla[I] = null}
}
В данный момент мне надо знать что надо поместить вместо setText(null), что-бы кнопка удалялась, и как поместить полученное в ветку then метода def Poisk(N, I) , что-бы удалялась только кнопка соседняя с пустым полем ...
Код
//Spisok.groovy
package groovy
public class Spisok {
Integer S, J, T, Q
List Order
def spisok (N) {
S = (N as Integer )**2 - 1
Order = [0]; Q = 0
while (Q <= S) {
J = 0; T = Math.round(Math.random() * S)
for (i in Order) {if (T != i) {++J}}
if (J == Order.size()) {Order = Order + T}
Q = Order.size()
}
Order = Order - 0
}
}
/Код
/Main.java
package javaclass;
public class Main {
public static void main(String args[]) {
puzzle m2 = new puzzle();
m2.run();
}
}
Код
//puzzle.java
package javaclass;
class puzzle {
void run() {
throw new UnsupportedOperationException("Not yet implemented");
}
}