Показать сообщение отдельно

  #10  
Старый 27.12.2009, 03:04
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме:
298300

Репутация: 128
По умолчанию

Цитата:
Сообщение от Insane bboy  
кодю на джаве совсем недолго, у меня возникла проблема с jlist, я не знаю как управлять элементами jlist, пишу в нетбинсе, добавляю jlist на панель
как управлять элементами? методов add, del, etc я е обнаружил у jList1..
и как должна выглядеть строчка String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; чтоб элементы брались из файла по типу, строка - элемент)
Представляй свои элементы в виде списка. Я написал маленький примерчик, там есть комментарии
Код:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.Arrays;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

/**
 * @author ss88
 * 
 */
public class HelloListFrame extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 4357062401801939262L;
	private JList list;
	private ArrayList<String> items;

	public HelloListFrame(String[] listItems) {

		setTitle("JList example");

		setSize(300, 300);

		items = new ArrayList<String>(Arrays.asList(listItems));
		/**
		 * Мы могли бы передать массив объектов в качестве параметра одного из
		 * конструкторов класса, но мы намерено создаем пустой список
		 */
		list = new JList();

		/**
		 * имя метода не совсем очевидно, но имеем, то и имеем :) Мы просто
		 * передаем массив или список объектов, которые представляют собой
		 * содержимое списка
		 */
		list.setListData(items.toArray());

		// установка бордюрного менеджера компоновки
		setLayout(new BorderLayout());

		// добавление списка в центральную часть фрейма
		add(new JScrollPane(list), BorderLayout.CENTER);
		
		add(new JButton(new DeleteAction("Delete last")), BorderLayout.SOUTH);
	}

	private class DeleteAction extends AbstractAction {

		private static final long serialVersionUID = 3638818075843161033L;
		public DeleteAction(String title) {
			putValue(NAME, title);
		}
		@Override
		public void actionPerformed(ActionEvent arg0) {
			if (!items.isEmpty()) {
				items.remove(items.size() - 1);
				list.setListData(items.toArray());
			}
		}

	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {

			@Override
			public void run() {
				HelloListFrame frame = new HelloListFrame(new String[] {
						"Оболонь", "Чернігівське", "Славутич", "Балтика",
						"ППБ", "Рогань", "ПИТ" });
				frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
				frame.setVisible(true);
			}
		});
	}
}
 
Ответить с цитированием