Вместо того, чтобы создавать строку из выбранных элементов, вы можете просто установить для атрибута значение value
(val()
в JQuery) элемента select
.
Также, чтобы упростить работу с data-
атрибутами, JQuery предоставляет метод .data()
(используется ниже);
$("#selection").change(function() {
$('#comeMan').data('clc', $('#selection').val());
console.log( $('#comeMan').data('clc'));
});
[111 ] MiGLayout является менеджером по расположению GUI, который широко используется Java-разработчиками.
Как общий обзор, Вы могли бы найти статью, которую я написал loooong время назад в солнце, чтобы быть полезным. Это не актуально с последними менеджерами по расположению, но это концентрируется на эффективном вложении менеджеров по расположению, вместо того, чтобы пытаться сделать все с одним расположением.
См. http://developer.java.sun.com/developer/onlineTraining/GUI/AWTLayoutMgr
Я использую DesignGridLayout для большинства моих панелей.
Для редких панелей, которые DesignGridLayout
не могут полностью обработать, я использую соединение Borderlayout и DesignGridLayout
.
С DesigngridLayout можно вручную кодировать разметки с минимальным количеством строк кода, которые легко ввести и читать:
DesignGridLayouut layout = new DesignGridLayout(myPanel);
layout.row().grid(lblFirstName).add(txfFirstName).grid(lblSurName).add(txfSurName);
layout.row().grid(lblAddress).add(txfAddress);
layout.row().center().add(btnOK, btnCancel);
Каждая строка сетки панели определяется одной строкой кода. Как Вы видите, "тянуть" Вашу панель довольно просто.
, Кроме того, я нахожу DesignGridLayout
, имеет некоторые уникальные функции (такой как его" , умная вертикаль изменяет размер ").
Последнее приложение Swing я работал над используемым FormsLayout JGOODIE.
Я использую GridBagLayout. Это, кажется, берет много кода, но это делает очень красивые разметки.
мне также нравится объединяться BorderLayout с панелями GridBagLayout для большой настраиваемости.
Я - большой поклонник использования TableLayout вместо GridBagLayout. Все просто имеет смысл, тогда как каждый раз я пытаюсь использовать GridBagLayout, он сокрушает мою душу.
МиГ и FormLayout (JGoodies) и превосходны для ручного расположения (И почти все расположение, в конечном счете становится ручным). Мой самый большой совет должен разработать Ваши представления так, чтобы можно было полностью сорвать расположение и повторно реализовать его, не влияя приложение (хорошее разделение представления, и контроллер является ключевым здесь).
Определенно смотрят на подход PresentationModel JGOODIE для реализации 'немых' представлений. Я использую эту технику с разработчиком GUI (я использую GroupLayout с разработчиком GUI Jigloo плагин) для того, чтобы сделать наспех быстрые прототипы. После 3 или 4 повторений, который обычно идет из окна и мы делаем использование перереализации МиГ или FormLayout.
РЕДАКТИРОВАНИЕ: Так как я записал это, я переместился в использование МиГа для всех моих разметок, и я больше не использую разработчика GUI - просто слишком легко положить вещи с помощью МиГа.
Я использую для движения для GridBagLayout для управления, но с тех пор java1.6 я собираюсь использовать , GroupLayout Является потрясающим.
Здесь снимок экрана и пример кода для использования его!.
сопроводительный текст http://img145.imageshack.us/img145/7844/screenshot1dz8.png
private void layoutComponents(){
JPanel panel = new JPanel();
GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
SequentialGroup hGroup = layout.createSequentialGroup();
JLabel nameLbl = new JLabel("Name");
JLabel countLbl = new JLabel("Amount");
JLabel dateLbl = new JLabel("Date(dd/MM/yy)");
hGroup.addGroup(layout.createParallelGroup().
addComponent(nameLbl).
addComponent(countLbl).
addComponent(dateLbl).
addComponent(go));
hGroup.addGroup(layout.createParallelGroup().
addComponent(name).
addComponent(count).
addComponent(date));
layout.setHorizontalGroup(hGroup);
SequentialGroup vGroup = layout.createSequentialGroup();
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
addComponent(nameLbl).addComponent(name));
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
addComponent(countLbl).addComponent(count));
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
addComponent(dateLbl).addComponent(date));
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
addComponent(go));
layout.setVerticalGroup(vGroup);
frame.add( panel , BorderLayout.NORTH );
frame.add( new JScrollPane( textArea ) );
}
GridBagLayout применим. После того как Вы привыкаете к использованию его, это работает отлично. Я думаю, что типичные менеджеры по расположению JDK довольно мощны самостоятельно. Плюс, Вы добираетесь для уменьшения зависимости от сторонних библиотек.
Я нашел, что для любого нетривиального GUI использую несколько разметок с вложенными подпанелями, где основная панель может иметь GridBagLayout
и каждая подпанель (обычно без границы или признака, что это - панель), использует более простое расположение, если это возможно. Обычно я буду использовать BorderLayout
, FlowLayout
, и BoxLayout
для меньших, более простых подпанелей. Путем деления маленьких разделов GUI в подпанели и использования самого простого расположения, возможного управлять тем разделом GUI, можно создать комплекс, хорошо расположенные дисплеи без слишком большого количества головной боли от GridBagLayout
много опций. Кроме того, путем группировки как функциональность дисплея в панель это создает больше читаемого кода.
Я использую GridBagLayout для формы как разметки, использую BorderLayout для простых макетов и FlowLayout для количества горизонтальных значков/кнопок, которые имеют некоторые промежуточные пробелы. Netbeans является также хорошим разработчиком GUI, который может избежать большого количества утомительных кодирований расположения, чтобы сэкономить Ваше время.
Я - немного новичка Java.
я попробовал GridBagLayout, сдался, затем попробовал BoxLayout, затем сдался, затем сделал мое собственное Пользовательский макет , который работал. С GridBag и Полем я вставил свое лучшее предположение, и механизмы Расположения решили сделать что-то другое без любого очевидного способа отладить их.
С моим пользовательским макетом, я мог распечатать координаты и ширины и высоты, для обнаружения, где он шел не так, как надо. Это - немного mathy помещающие вещи, но у Вас есть полная мощность Java использовать, а не ограниченный словарь одного из встроенных менеджеров по расположению.
, Конечно, это было только для домашнего проекта, Вам никогда не будут разрешать сделать это на работе.
Я использую BorderLayout 90% времени в то время как вложение BoxLayout и SpringLayout
Я всегда был большим поклонником GridBagLayout. Это напоминает HTML-таблицы много, таким образом, это интуитивно тем веб-программистам.
Я начался с помощью различных вложенных разметок, затем отодвинулся к GridBagLayout (который довольно печален). С тех пор я попробовал FormLayout (но нашел, что он ни для чего не подходил кроме форм), и завещанный твердо TableLayout, которым в целом я очень доволен.
С тех пор я обнаружил MiGLayout и хотя я не сделал намного больше, чем игра с ним, это кажется очень способным, весьма схожим с TableLayout и вероятно немного более чистым.
большое плюс для меня - то, что MiGLayout установлен стать частью JDK, таким образом, я намереваюсь использовать его в значительной степени исключительно, когда это делает.
другая вещь помнить состоит в том, что, неважно, на котором тяжелом LayoutManager Вы обосновываетесь, всегда существует место для некоторых более простых менеджеров по расположению, таких как GridLayout. Я видел некоторые ужасные вещи, сделанные с GridBagLayout, который, возможно, был сделан намного более легко с более простым менеджером по расположению.
Я предпочитаю минимизировать зависимости от сторонних библиотек, поэтому обычно это BoxLayout для диалогов и GridBagLayout для «сложных» макетов. GridBagLayout достаточно прост для понимания, но его немного сложно настроить. Я написал инструмент для создания кода из HTML-макетов (надеюсь, это поможет и другим): http://www.onyxbits.de/content/blog/patrick/java-gui-building-gridbaglayout-manager-made-easy
Единственный менеджер по расположению, которого я нашел, что я на самом деле как Относительный менеджер по Расположению . Относительный менеджер по Расположению работает способом, который согласовывается с тем, как диалоговые окна концептуально организованы. Один недостаток - это, в то время как этот менеджер по расположению имеет дело с аддитивными ограничениями. Это делает не , кажется, имеют дело с ограничениями отношения. К счастью, это вполне прилично разработано, и я смог реализовать эту опцию.
расположение Spring , который был разработан для мантиссы gui разработчик, который является частью netbeans.
Я использовал GroupLayout также. Снова, это - типичный менеджер по расположению JDK с Java6, но можно найти библиотеку отдельной также.
Недавно я начал использовать Swing и использую GridBagLayout.
GridBagLayout мощный, но довольно примитивный: код, связывающий макет, очень многословен. Эта служебная библиотека (на самом деле всего 1 jar-файл, содержащий около 10 классов) упрощает множество работ: http://code.google.com/p/ponent-gridbag/ Следующий фрагмент цитируется из домашней страницы страница этого сайта:
PainlessGridBag gbl = new PainlessGridBag(getContentPane(), false);
gbl.row().cell(lblFirstName).cell(txtFirstName).fillX()
.cell(lblFamilyName).cell(txtFamilyName).fillX();
gbl.row().cell(lblAddress).cellXRemainder(txtAddress).fillX();
gbl.doneAndPushEverythingToTop();