Вообще без понятия, как назвать тему теперь.

necauqua

когда-то был anti344
Администратор
1,216
27
172
1. О боже какой фреймфорк!!!
  Наигравшись с gradle, который юзается для 1.7.2, решил начать таки пилить проект, что информатик задал мне уже давным давно. Решил использовать Apache Ant, и ты что какой он офигезный и несложный! Даже Scala поставил.


2. Я ПОСТИГ СИЛУ ПАКЕТА scala.swing (просто scal-овские доработки на тему оригинала, дабы максимально использовать все её фичи и функциональное программирование), ТАК ВОТ, АФИГЕТЬ ОН УДОБЕН.
Ну например так:
Код:
val frame: MainFrame = new MainFrame{
    title = "My Frame"
    minimumSize = new Dimension(300, 200)
    visible = true
    contents = new GridPanel(1, 4){
      contents += new Button{
        text = "Press Me!"
        reactions += {
          case ButtonClicked(_) => sys.exit()
        }
      } += new Button{
        text = "No! Press Me!"
        reactions += {
          case ButtonClicked(_) => text = "OOOhh.."
        }
      }
    }
  }
  frame.centerOnScreen()
 
1,990
18
105
anti344 написал(а):
Код:
val frame: MainFrame = new MainFrame{
    title = "My Frame"
    minimumSize = new Dimension(300, 200)
    visible = true
    contents = new GridPanel(1, 4){
      contents += new Button{
        text = "Press Me!"
        reactions += {
          case ButtonClicked(_) => sys.exit()
        }
      } += new Button{
        text = "No! Press Me!"
        reactions += {
          case ButtonClicked(_) => text = "OOOhh.."
        }
      }
    }
  }
  frame.centerOnScreen()
Ого, в разы лучше сброда такого же кода на родной Жабе под свингом.
Особенно различные
Код:
GuiButton button = new Button("poklon").addActionListener(new ActionListener() {
  public void actionPerformed() {
  }
});
Заинтересовал ты, короче.
P.S.

Код:
+= new Button
вообще мимими.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Ибо методы в Scala можно называть символами(так что плюсик между 2 + 2 - это тоже метод у класса Int).
Ну а += это метод у коллекций, добавляющий к ним элемент(и возвращающий их же, что позволяет мутить что-то типа Seq(1, 2, 3) += 4 += 5)
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
А теперь напишите тоже самое не на Scala и не на Java 8
Код:
val lang: Map[String, String] = {
    lazy val parser: Document =
      ConstructingParser.fromSource(Source.fromInputStream(getClass.getResourceAsStream("/lang.xml")),
        preserveWS = false).document()
    parser.docElem.child.map(e => if(e.label == "e"){
      e.attributes.head match{
        case g: Attribute => g.key -> g.value(0).text
        case _ => null
      }
    }else (null, null)).toMap.filter(_ != (null, null)).withDefault(l => l)
  }
 
Сверху