пятница, 4 декабря 2009 г.

LayoutManager-ы

Кроме станадртного BorderLayout, весьма удобно использовать GridBagLayout.
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/GridBagLayout.html

четверг, 3 декабря 2009 г.

Скрытие cmd-окна при запуске java-программ

Достаточно странные результаты в первых строчках выдает гугл, если спросить у него "how to hide cmd window in windows" или "hide cmd line". Ведь просто-напросто необходимо запустить некую программу с параметрами ипосле запуска командная строка уже не нужна и сильно раздражает. Для этого можно использовать команду start с ключом /b. Конкретно у меня проблема возникла при запуске джавашных программ, хотя то же, естественно, применимо для любых не-консольных программ, запускающихся с параметрами. Для джавы решение такое:

1) использовать не java, а jawaw;
2)указать командному интерпретатору Windows скрыть окно.

Если раньше cmd-файлик запуска java-класса был таким:

java -Xms128m -Xmx512m -classpath F:\Projects\JavaProjects\GetOborotToBank\bin;F:\Projects\JavaProjects\GetOborotToBank\lib\classes12.jar GetOborotToBank -outfile c:\outfile.txt

Теперь он выглядит так:

start /B javaw -Xms128m -Xmx512m -classpath F:\Projects\JavaProjects\GetOborotToBank\bin;F:\Projects\JavaProjects\GetOborotToBank\lib\classes12.jar;F:\Projects\JavaProjects\GetOborotToBank\lib\javadbf.jar GetOborotToBank -outfile c:\outfile.txt

То есть мы "java" заменили на "javaw" и перед командой добавили "start /B". Последнее действие скрывает cmd-окно.

Взято отсюда:
http://www.rsdn.ru/forum/java/2647235.flat.aspx

Официальная майкрософтовская справка по команде start:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true


воскресенье, 29 ноября 2009 г.

Regex и файловая маска

Часто надо было отфильтровать файлы по некоему общему признаку в их имени. Для этого можно использовать регулярные выражения. Писать регулярные выражения в конфиг-файле достаточно неудобно, да и объяснять пользователям, что будет искать то или иное регулярное выражение еще сложнее. Поэтому проще использовать обычную файловую маску, а из нее уже в программе получать нужное регулярное выражение:

public String getRegexFromFileMask(String fileMask) {
  String regexStr = fileMask.replaceAll("[*]{1}", "[a-zA-Z_0-9]{0,}");
  regexStr = regexStr.replaceAll("[\\.]{1}", "\\\\.");
  regexStr = regexStr.replaceAll("\\?", "[0-9]{1}");
  return regexStr;
}


* This source code was highlighted with Source Code Highlighter.

Таким образом мы, например:
из строки "log*.txt" получаем "log[a-zA-Z_0-9]{0,}\.txt"

* This source code was highlighted with Source Code Highlighter.

суббота, 28 ноября 2009 г.

Подсветка синтаксиса

Очень полезная вещь, если нужно опубликовать красивый читабельный код с подсвеченным синтаксисом, со всеми отступами и правильным шрифтом. Открываем эту ссылку:
http://source.virtser.net/
Вставляем в окно (либо печатаем прямо в нем же) нужный нам код:
class MyClass {
  private String str;
  MyClass() {
  }
  public void setStr(String aStr) {
    str = aStr;
  }
  public String getStr() {
    return str;
  }
}

нажимаем кнопочку "Highlight code" и копипипастим результирующий хтмл в блог или куда там нам надо:
class MyClass {
 private String str;
 MyClass() {
 }
 public void setStr(String aStr) {
    str = aStr;
 }
 public String getStr() {
    return str;
 } 
}


* This source code was highlighted with Source Code Highlighter.

Технология hibernate

Толково написано тут:
http://habrahabr.ru/blogs/java/29694

И тут:
http://www.nestor.minsk.by/kg/2005/32/kg53209.html