1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dipoo-AXmlSwing

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

AXmlSwing

Использование xml для упрощения разработки swing

Документ

Пожалуйста, обратитесь к wiki.

Demo

Пожалуйста, ознакомьтесь с AXmlSwingDemo.

Как использовать

1. Конфигурационный файл src/axmlswing.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- Конфигурация прослушивателя событий сканирования пакета -->
  <scan-package>demo.listeners</scan-package>
  <!-- Пользовательские свойства, которые можно использовать в файле макета: например, ${title}, или получить значение через VarsManager.getVarValue(name) -->
  <properties>
    <property name="title">虾片神器</property>
    <property name="alert">Адрес загрузки не может быть пустым</property>
  </properties>
  <!-- Определение глобальных свойств тегов -->
  <tag-default>
    <tag name="JLabel">
      <attr name="foreground">blue</attr>
    </tag>
    <tag name="JTextField">
      <attr name="columns">10</attr>
    </tag>
  </tag-default>
</configuration>
2. Файл макета demo.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  ${rootPath}: корневой каталог проекта src (встроенная переменная)
-->
<JFrame id="mainWindow" title="${title}" width="300" height="300"
        locationRelativeTo="null" defaultCloseOperation="3" 
        iconImage="${rootPath}/anchor.gif" layout="0">
  <JMenuBar bounds="5, 0, 280, 25" cursor="HAND_CURSOR">
    <JMenu text="Задачи">
      <JMenuItem text="Открыть"/>
      <JMenuItem text="Сохранить"/>
      <JMenuItem text="Сохранить как"/>
      <JMenuItem onclick="exit()" text="Выйти"/>
    </JMenu>
    <JMenu text="Редактирование">
      <JMenuItem text="Создать"/>
      <JMenuItem text="Удалить"/>
    </JMenu>
    <JMenu text="Поиск"/>
    <JMenu text="Помощь"/>
  </JMenuBar>
  <JLabel text="Адрес" bounds="10, 50, 60, 30" icon="${rootPath}/anchor.gif" />
  <JTextField id="urlField" text="Смешной"
              bounds="60, 50, 220, 30" />
  <JButton id="downBtn" text="Скачать" icon="${rootPath}/anchor.gif"
           toolTipText="Подсказка кнопки" bounds="100, 100, 100, 30"
           foreground="red" cursor="HAND_CURSOR" font="微软染黑,0,12"/>
</JFrame>

3. Обработчик событий DownBtnListener.java

    package demo.listeners;
    @EventAnnotation("downBtn")//Отметить идентификатор = событие слушателя элемента управления downBtn
    //Все слушатели элементов управления должны наследовать класс AbstractListener и переопределить его методы
    public class DownBtnListener extends AbstractListener{
        public void mouseClicked(MouseEvent e) {
			JButton btn = (JButton) e.getSource();
			JFrame mainWindow = (JFrame) ComponentManager.getMainWindow();
			JOptionPane.showMessageDialog(null, "Привет, название главного окна:" + 
			     mainWindow.getTitle() + ", текст кнопки:" + btn.getText());
			JTextField field=(JTextField)ComponentManager.getComponent("urlField");
			JOptionPane.showMessageDialog(null, field.getText());
		}
    }
4. Загрузка файла макета demo.java
    package demo;	
    public class Demo {
        public static void main(String[] args) throws Exception {
		  //Загрузить файл макета
		  GuiXmlLoader.load("demo.xml");
		}
    }
5. Эффект изображения

demo

Зависимости

  • dom4j-1.6.1.jar
  • jaxen-1.1.1.jar
  • beautyeye_lnf.jar (пакет скинов, опционально)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Использование XML для упрощения разработки Swing. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dipoo-AXmlSwing.git
git@api.gitlife.ru:oschina-mirror/dipoo-AXmlSwing.git
oschina-mirror
dipoo-AXmlSwing
dipoo-AXmlSwing
master