• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z wyswietlaniem elementow kolekcji w aplikacji okienkowej java.

Object Storage Arubacloud
0 głosów
372 wizyt
pytanie zadane 3 listopada 2017 w Java przez Don Corleone Obywatel (1,210 p.)

Witam, problem tak jak w temacie, dokładniej chodzi o metode refreshView w pomocniczej klasie BrowseList w klasie GroupOfLaptopsWindowDialog, ponizej wklejam link do klas z mojego programu, poniewaz nie wiem gdzie dokladnie tkwi błąd a z wycietego kodu mogloby malo wynikac, dodatkowo jezeli znajdziecie jakies bledy prosze o odpowiedz.

KLASY_JAVA

3 odpowiedzi

0 głosów
odpowiedź 4 listopada 2017 przez reaker Użytkownik (620 p.)
Sory ale trzeba wysłać Premium SMSa żeby zobaczyć Twój kod.... O.o
0 głosów
odpowiedź 4 listopada 2017 przez Wiciorny Ekspert (270,190 p.)
Nie wysyłaj w ten sposób plików do pobrania.
–1 głos
odpowiedź 5 listopada 2017 przez Don Corleone Obywatel (1,210 p.)
edycja 5 listopada 2017 przez Don Corleone
Nic nie trzeba wysyłać, niżej jest napis mniejsza  czcionka pobierz plik, pozatym problem rozwiązałem ale mam następne pytanie jak w przypadku tej klasy należałoby przedefiniować metody compareTo, hashCode,equals , jakieś podpowiedzi czy wskazówki mile widziane:)
komentarz 5 listopada 2017 przez Wiciorny Ekspert (270,190 p.)
nie rozumiesz, że nie wkleja się "paczek do pobrania" mogą byc zawirusowane. Chcesz pomocy edytuj i wklej kod w tagach
komentarz 5 listopada 2017 przez Don Corleone Obywatel (1,210 p.)
Chcialem to zrobić na początku ale limit 15000 znakow zostal przekroczony a nie chcialem wycinac fragmentow kodu zeby kazdy mogl sobie skompilowac i sprawdzic jak to wszystko dziala,
komentarz 5 listopada 2017 przez Don Corleone Obywatel (1,210 p.)

Klasa Laptops

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serializable;

/*  
 *  Plik: Klasa Laptops
 *  Autor: Łukasz Zaleski
 *  Data stworzenia pliku: 22.10.2017
 *    
 *    */

class LaptopsException extends Exception {

	public static final long serialVersionUID = 1l;

	public LaptopsException(String message) {
		super(message);
	}
}

enum Manufacturer {

	UNKNOWN("-------"), MSI("MSI"), LENOVO("Lenovo"), ASUS("Asus"), ACER("Acer"), DELL("Dell"), HP("HP"), TOSHIBA(
			"Toshiba"), APPLE("Apple");

	String manufacturername;

	private Manufacturer(String type) {
		manufacturername = type;
	}

	@Override
	public String toString() {
		return manufacturername;

	}

}

public class Laptops implements Comparable<Laptops>,Serializable{

	String color;
	private int price;
	String processor;
	private Manufacturer type;

	public static final long serialVersionUID=1L;
	public Laptops(String color, String processor) {
		this.color = color;
		this.processor = processor;
		type = Manufacturer.UNKNOWN;
	}
@Override
	public String toString()
	{
	return color+""+processor;
	}
	
	public void Setcolor(String colors) throws LaptopsException {
		if (colors.equals(""))
			throw new LaptopsException("Color field must be filled");
		this.color = colors;
	}

	public void Setprice(int prices) throws LaptopsException {
		if (prices > 40000 || prices < 0)
			throw new LaptopsException("Price must be beetween 0 and 40000");
		this.price = prices;

	}

	public void Setprice(String price) throws LaptopsException {
		try {
			Setprice(Integer.parseInt(price));

		} catch (NumberFormatException e) {
			throw new LaptopsException("Cena musi byc liczba calkowita");
		}

	}

	public void Setprocessor(String processorr) throws LaptopsException {
		if (processor.equals(""))
			throw new LaptopsException("Processor model field must be filled");
		this.processor = processorr;
	}

	public void Setmanufacture(Manufacturer types) {
		this.type = types;
	}

	public void Setmanufacture(String producent) throws LaptopsException {
		if (producent.equals(" ")) {
			this.type = Manufacturer.UNKNOWN;
			return;
		}
		for (Manufacturer type : Manufacturer.values()) {
			if (type.manufacturername.equals(producent)) {
				this.type = type;
				return;
			}
		}
		throw new LaptopsException("Nie istnieje taki producent");

	}

	public Manufacturer Getmanufacturer() {

		return type;
	}

	public String Getcolor() {

		return color;
	}

	public String Getprocessor() {

		return processor;
	}

	public double Getprice() {

		return price;
	}
	
    
	
	public static void SaveToFile(PrintWriter temp, Laptops laptop) {
		temp.println(laptop.processor + "%" + laptop.color + "%" + laptop.price + "%" + laptop.type);

	}

	public static void SaveToFile(String file_name, Laptops laptop) throws LaptopsException {
		try (PrintWriter temp = new PrintWriter(file_name)) {
			SaveToFile(temp, laptop);
		} catch (FileNotFoundException e) {
			throw new LaptopsException("File not found" + file_name);
		}
	}

	public static Laptops ReadFromFile(BufferedReader reader) throws LaptopsException {
		try {
			String line = reader.readLine();
			String[] TXT = line.split("%");
			Laptops laptop = new Laptops(TXT[0], TXT[1]);
			laptop.Setprice(TXT[2]);
			laptop.Setmanufacture(TXT[3]);
			return laptop;
		} catch (IOException e) {
			throw new LaptopsException("Read data from a file not available");
		}

	}

	public static Laptops readFromFile(String file_name) throws LaptopsException {
		try (BufferedReader reader = new BufferedReader(new FileReader(new File(file_name)))) {
			return Laptops.ReadFromFile(reader);
		} catch (FileNotFoundException e) {
			throw new LaptopsException("Nie odnaleziono pliku " + file_name);
		} catch (IOException e) {
			throw new LaptopsException("Wystapil blad podczas odczytu danych z pliku.");
		}

	}

	@Override
	public int compareTo(Laptops o) {
		
		int porownanekolory=color.compareTo(o.color);
		if(porownanekolory==0)
		{
			return processor.compareTo(o.processor);
		}
			
		return porownanekolory;
	}
	
}

Klasa GroupOfLaptops

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.TreeSet;
import java.util.Vector;

/*
 * Plik: Klasa GroupOfLaptops
 * Autor: Łukasz Zaleski
 * Data stworzenia pliku: 03.11.2017
 */

enum GroupType{
	
	VECTOR("List, vector class"),
	ARRAY_LIST("List, array list class"),
	LINKED_LIST("List, linked list class"),
	HASH_SET("Set, Hash set class"),
	TREE_SET("Set, Tree set class");
	
	String type_Name;
	
	@Override
	public String toString()
	{
		return type_Name;
	}
	
	GroupType(String type_name)
	{
		type_Name=type_name;
	}
	
	public static GroupType find(String type_name)
	{
		for(GroupType type : values())
		{
			if(type.type_Name.equals(type_name)) {
				return type;
			}
		}
		return null;
	}
	
	public Collection<Laptops> createcollection() throws LaptopsException{
		
		switch(this) {
		case VECTOR: return new Vector<Laptops>();
		case ARRAY_LIST: return new ArrayList<Laptops>();
		case LINKED_LIST: return new LinkedList<Laptops>();
		case HASH_SET: return new HashSet<Laptops>();
		case TREE_SET: return new TreeSet<Laptops>();
		default: throw new LaptopsException("Podany typ kolekcji nie zostal utworzony");
		
		}
		
	}
	
}


public class GroupOfLaptops implements Iterable<Laptops>, Serializable{

	private GroupType type;
	private String name;
	private Collection<Laptops> collection;
	
	public static final long serialVersionUID=1L;
	
	GroupOfLaptops(String name, GroupType type) throws LaptopsException
	{
		setName(name);
		if(type==null) {
		throw new LaptopsException("Zly typ kolekcji");}
		
		this.type=type;
		collection=this.type.createcollection();
		
		
	}
	
	GroupOfLaptops(String name ,String type_name) throws LaptopsException
	{
		setName(name);
		GroupType type=GroupType.find(type_name);
		if(type==null)
		{
			throw new LaptopsException("Zly typ kolekcji");
		}
		this.type=type;
		collection=this.type.createcollection();
	}
	
	
	public String getName() {
		return name;
	}
    

	public void setName(String name) throws LaptopsException {
		if ((name == null) || name.equals(""))
			throw new LaptopsException("Pusta nazwa grupy jest niedozwolona");
		this.name = name;
	}
	
	public GroupType getType()
	{
		return type;
	}
	
	public boolean add(Laptops e) {
		return collection.add(e);
	}

	public Iterator<Laptops> iterator() {
		return collection.iterator();
	}
	
	public int size() {
		return collection.size();
	}
	
	public void setType(GroupType type) throws LaptopsException
	{
		if(type==null)
			throw new LaptopsException("Kolekcja musi byc okreslona");
		if(type==type)
			return;
		Collection<Laptops> oldCollection = collection;
		collection = type.createcollection();
		this.type=type;
		for(Laptops laptop: oldCollection)
			collection.add(laptop);
	}
	
	public void setType(String type_name) throws LaptopsException{
		
		for(GroupType type : GroupType.values())
		{
			if(type.toString().equals(type_name))
				setType(type);
			return;
		}throw new LaptopsException("Nie ma takiego typu kolekcji");
	}

	public static void printToFile(String file_name, GroupOfLaptops group) throws LaptopsException  {
		
		
	}

	public static void printToFile(PrintWriter writer, GroupOfLaptops group) {
		
	}
	
	public static GroupOfLaptops readFromFile(String file_name) throws LaptopsException{
		
		return null;
	}

	public static GroupOfLaptops readFromFile(BufferedReader reader) throws LaptopsException{
		
		return null;
	}
	
	
	
	
	
	
}

 

komentarz 5 listopada 2017 przez Don Corleone Obywatel (1,210 p.)

GroupOfLaptopsWindowApp

import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

public class GroupOfLaptopsWindowApp extends JFrame implements ActionListener {

	public static final String Greeting_Message = "Autor: Lukasz Zaleski \n" + "Program Laptops wersja okienkowa \n"
			+ "Data: pażdziernik 2017 r. \n";;

	private static final long serialVersionUID = 1L;
	private static final String ALL_GROUPS_FILE = "LISTA_GRUP.BIN";

	public static void main(String[] args) {

		new GroupOfLaptopsWindowApp();

	}

	private List<GroupOfLaptops> presentlist = new ArrayList<GroupOfLaptops>();

	BrowseGroupList browselist;
	Font font = new Font("Monospaced", Font.ITALIC, 18);

	JMenuBar menuBar = new JMenuBar();

	JMenu menuGroups = new JMenu("Groups");
	JMenu menuCalculatedGroups = new JMenu("Calculated groups");
	JMenu menuAboutProgram = new JMenu("Informations about program");

	JMenuItem menuNewGroup = new JMenuItem("Add group");
	JMenuItem menuDeleteGroup = new JMenuItem("Delete group");
	JMenuItem menuEditGroup = new JMenuItem("Edit group");
	JMenuItem menuSaveToFile = new JMenuItem("Save to file");
	JMenuItem menuLoadFromFile = new JMenuItem("Load from file");
	JMenuItem menuInfo = new JMenuItem("Autor");

	JButton newButton = new JButton("Add");
	JButton deleteButton = new JButton("Delete");
	JButton editButton = new JButton("Edit");
	JButton openButton = new JButton("Open");
	JButton saveButton = new JButton("Save");
	JButton loadButton = new JButton("Load");

	GroupOfLaptopsWindowApp() {

		setTitle("Group manager");
		setSize(430, 600);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setResizable(false);

		addWindowListener(new WindowAdapter() {

			@Override
			public void windowClosed(WindowEvent event) {

				try {
					saveGroupToFile(ALL_GROUPS_FILE);
					JOptionPane.showMessageDialog(null, "Pomyslnie zapisano dane" + ALL_GROUPS_FILE);
				} catch (LaptopsException e) {
					JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
				}
			}

			@Override
			public void windowClosing(WindowEvent e) {

				windowClosed(e);
			}

		});

		try {
			loadGroupFromFile(ALL_GROUPS_FILE);
			JOptionPane.showMessageDialog(null, "Pomyslnie wczytano dane" + ALL_GROUPS_FILE);
		} catch (LaptopsException e) {
			JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
		}

		setJMenuBar(menuBar);
		menuBar.add(menuGroups);
		menuBar.add(menuCalculatedGroups);
		menuBar.add(menuAboutProgram);
		menuAboutProgram.add(menuInfo);
		menuGroups.add(menuNewGroup);
		menuGroups.add(menuDeleteGroup);
		menuGroups.add(menuEditGroup);
		menuGroups.addSeparator();
		menuGroups.add(menuSaveToFile);
		menuGroups.add(menuLoadFromFile);

		JPanel panel = new JPanel();

		browselist = new BrowseGroupList(presentlist, 400, 400);
		browselist.refreshView();

		panel.add(browselist);
		panel.add(newButton);
		panel.add(deleteButton);
		panel.add(editButton);
		panel.add(openButton);
		panel.add(saveButton);
		panel.add(loadButton);

		menuDeleteGroup.addActionListener(this);
		deleteButton.addActionListener(this);
		menuInfo.addActionListener(this);
		menuNewGroup.addActionListener(this);
		menuEditGroup.addActionListener(this);
		newButton.addActionListener(this);
		editButton.addActionListener(this);
		setContentPane(panel);
		setVisible(true);
	}

	@SuppressWarnings("unchecked")
	void loadGroupFromFile(String file_name) throws LaptopsException {

		try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(file_name))) {
			presentlist = (List<GroupOfLaptops>) in.readObject();
		} catch (FileNotFoundException e) {
			throw new LaptopsException("Nie odnaleziono pliku");

		} catch (Exception e) {
			throw new LaptopsException("Blad przy odczycie z pliku");
		}

	}

	void saveGroupToFile(String file_name) throws LaptopsException {

		try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file_name))) {
			out.writeObject(presentlist);
		} catch (FileNotFoundException e) {
			throw new LaptopsException("Nie odnaleziono pliku");
		} catch (Exception e) {
			throw new LaptopsException("Blad przy zapisie do pliku");
		}

	}

	class BrowseGroupList extends JScrollPane {

		private static final long serialVersionUID = 1L;
		private List<GroupOfLaptops> list;
		private JTable table;
		private DefaultTableModel tModel;

		public BrowseGroupList(List<GroupOfLaptops> prelist, int width, int height) {
			this.list = prelist;
			setPreferredSize(new Dimension(width, height));
			setBorder(BorderFactory.createTitledBorder("List of groups"));
			String[] header = { "Name of group", "Type of group", "Number of laptops" };
			tModel = new DefaultTableModel(header, 0);
			table = new JTable(tModel) {

				private static final long serialVersionUID = 1L;

				@Override
				public boolean isCellEditable(int rowIndex, int colIndex) {
					return false;
				}
			};

			table.setRowSelectionAllowed(true);
			table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
			setViewportView(table);
		}

		void refreshView() {
			tModel.setRowCount(0);
			for (GroupOfLaptops group : list) {
				if (group != null) {
					String[] row = { group.getName(), group.getType().toString(), "" + group.size() };
					tModel.addRow(row);
				}
			}
		}

		int getSelectedIndex() {
			int index = table.getSelectedRow();
			if (index < 0) {
				JOptionPane.showMessageDialog(this, "Nie zaznaczono zadnej grupy.", "Blad", JOptionPane.ERROR_MESSAGE);
			}
			return index;
		}
	}

	@Override
	public void actionPerformed(ActionEvent event) {

		Object source = event.getSource();

		try {

			if (source == newButton || source == menuNewGroup) {
				GroupOfLaptops group = GroupOfLaptopsWindowDialog.createnewgroup(this);
				if (group != null)
					presentlist.add(group);
			}
			if (source == editButton || source == menuEditGroup) {
				int index = browselist.getSelectedIndex();
				if (index >= 0) {
					Iterator<GroupOfLaptops> it = presentlist.iterator();
					while (index-- > 0)
						it.next();
					new GroupOfLaptopsWindowDialog(this, it.next());
				}
			}
			if (source == deleteButton || source == menuDeleteGroup) {
				int index = browselist.getSelectedIndex();
				if (index >= 0) {
					Iterator<GroupOfLaptops> it = presentlist.iterator();
					while (index-- >= 0)
						it.next();
					it.remove();
				}
			}
			if (source == saveButton||source==menuSaveToFile)
			{
				int index=browselist.getSelectedIndex();
				if(index>=0)
				{
					Iterator<GroupOfLaptops> it=presentlist.iterator();
					while(index-->0)
					{
						it.next();
						GroupOfLaptops group = it.next();
						JFileChooser chooser=new JFileChooser(".");
						int returnVal=chooser.showSaveDialog(this);
						if(returnVal==JFileChooser.APPROVE_OPTION) {
							GroupOfLaptops.printToFile(chooser.getSelectedFile().getName(),group);
							presentlist.add(group);
						}
							
					}
				}
			}
			if (source == loadButton||source==menuLoadFromFile)
			{
				JFileChooser chooser = new JFileChooser(".");
				int returnVal = chooser.showOpenDialog(this);
				if (returnVal == JFileChooser.APPROVE_OPTION) {
					GroupOfLaptops group = GroupOfLaptops.readFromFile(chooser.getSelectedFile().getName());
					presentlist.add(group);
				}
			}
			if (source == menuInfo) {
					JOptionPane.showMessageDialog(this, Greeting_Message);
				}
		} catch (LaptopsException e) {
			JOptionPane.showMessageDialog(this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
		}

		browselist.refreshView();
	}

}

GroupOfLaptopsWindowDialog

import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

public class GroupOfLaptopsWindowDialog extends JDialog implements ActionListener{
	
	/*  
	 *  Plik: Aplikacja okienkowa do zarzadzania wybranymi kolekcjami
	 *  Autor: Łukasz Zaleski
	 *  Data stworzenia pliku: 02.11.2017
	 *    
	 *    */
	
	
	
	BrowseList browselist;
	private static final long serialVersionUID=1L; 
	LaptopsConsoleDialog UI=new LaptopsConsoleDialog();
	
	
	
	
	
	JLabel nameLabel=new JLabel("Group name");
	JLabel typeLabel=new JLabel("Group type");
	JLabel addnameLabel=new JLabel("Enter group name");
	JLabel addtypeLabel=new JLabel("Enter group type");
	
	
	JTextField nameField= new JTextField(10);
	JTextField typeField=new JTextField(12);
	
	JButton newButton=new JButton("New");
	JButton editButton=new JButton("Edit");
	JButton deleteButton=new JButton("Delete");
	JButton saveButton=new JButton("Save");
	JButton loadButton=new JButton("Load");
	JButton OkButton=new JButton("Add group");
	
	JMenuBar menuBar=new JMenuBar();
	JMenu menuList=new JMenu("Laptops list");
	JMenu menuSort=new JMenu("Sorting");
	JMenu menuInfo=new JMenu("Info");
	JMenu menuProp=new JMenu("Properties");
	
	JMenuItem addLaptop=new JMenuItem("Add laptop");
	JMenuItem deleteLaptop=new JMenuItem("Delete laptop");
	JMenuItem editLaptop=new JMenuItem("Edit laptop");
	JComboBox<Manufacturer> mBox = new JComboBox<Manufacturer>(Manufacturer.values());
	JComboBox<GroupType> gBox=new JComboBox<GroupType>(GroupType.values());
	
	private List<Laptops> group=new ArrayList<Laptops>();
	private static GroupOfLaptops groups;
	private Laptops presentlaptop;

	
	GroupOfLaptopsWindowDialog(Window parent,GroupOfLaptops list)
	{
		super(parent, Dialog.ModalityType.DOCUMENT_MODAL);
		this.groups=list;
		setTitle("Configuration of a particular group");
		setSize(350,450);
		setLocationRelativeTo(parent);
		setResizable(false);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		
		
		
		
		
		nameField.setEditable(false);
		typeField.setEditable(false);
		
		JPanel panel=new JPanel();
		
		setJMenuBar(menuBar);
	    menuBar.add(menuList);
	    menuBar.add(menuSort);
	    menuBar.add(menuProp);
	    menuBar.add(menuInfo);
		
	    panel.add(OkButton);
	    
	    panel.add(nameLabel);
		panel.add(nameField);
		
		panel.add(typeLabel);
		panel.add(typeField);
		
		newButton.addActionListener(this);
		editButton.addActionListener(this);
	    OkButton.addActionListener(this);
	    browselist=new BrowseList(groups,300,300);
	    panel.add(browselist);
	    browselist.refreshView();
		panel.add(newButton);
		panel.add(editButton);
		showGroupProperties();
		setContentPane(panel);
		setVisible(true);
		
	}


	class BrowseList extends JScrollPane {

		private static final long serialVersionUID = 1L;
		
		private GroupOfLaptops list;
		private JTable table;
		private DefaultTableModel tModel;
        
		public BrowseList(GroupOfLaptops lists, int width, int height) {
			this.list = lists;
			setPreferredSize(new Dimension(width, height));
			setBorder(BorderFactory.createTitledBorder("List of laptops"));
			String[] header={"Kolor laptopa", "Procesor laptopa","Model laptopa","Cena laptopa"};
			tModel=new DefaultTableModel(header,0);
			table=new JTable(tModel);
			
			table.setRowSelectionAllowed(true);
			table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
			setViewportView(table);
		}
		void refreshView(){
			tModel.setRowCount(0);
			if(list!=null)
			{
			Iterator<Laptops> iterator = list.iterator();
			while (iterator.hasNext()){
				Laptops laptop=iterator.next();
				if (laptop != null) {
					String[] row = { laptop.Getcolor(), laptop.Getprocessor(), "" + laptop.Getmanufacturer().toString()
							,""+laptop.Getprice() };
					tModel.addRow(row);
				}
			}
		}
		}
	}
	
	
	public static GroupOfLaptops createnewgroup(Window parent) throws LaptopsException
	{
		
		GroupOfLaptopsWindowDialog dialog =new GroupOfLaptopsWindowDialog(parent,null);
		return dialog.groups;
		
	}
	
	public void showGroupProperties()
	{
		if(groups==null)
		{
			nameField.setText("-------");
			typeField.setText("-------");
		}
		else {
			
		nameField.setText(groups.getName());
		typeField.setText(""+groups.getType());
		}
	}
	
	@Override
	public void actionPerformed(ActionEvent event) {
		
		Object source=event.getSource();

		
		try {
			
		if(source==OkButton)
		{
			
			groups=create();
			
		}
		if(source==newButton)
		{
			presentlaptop=LaptopsWindowDialog.createNewLaptop(this);
			groups.add(presentlaptop);
			
			
		}}catch(LaptopsException e)
		{
			JOptionPane.showMessageDialog(this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
			
		}
		browselist.refreshView();
		
	}
	
	
	
	
	
	public  GroupOfLaptops create() throws LaptopsException
	{
		GroupType type;
		String name=JOptionPane.showInputDialog("Podaj nazwe grupy");
		JOptionPane.showMessageDialog(null, gBox, "Wybierz typ kolekcji z dostepnych ponizej", JOptionPane.QUESTION_MESSAGE);
		type=(GroupType) gBox.getSelectedItem();
		try {
		
		groups=new GroupOfLaptops(name,type);
		}catch(LaptopsException e)
		{
			throw new LaptopsException("Error");
		}
		
		return groups;
	}
	
}

 

komentarz 5 listopada 2017 przez Don Corleone Obywatel (1,210 p.)

LaptopsWindowDialog

import java.awt.Color;
import java.awt.Dialog;
import java.awt.Font;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

/*  
 *  Plik: Aplikacja okienkowa Laptops
 *  Autor: Łukasz Zaleski
 *  Data stworzenia pliku: 22.10.2017
 *    
 *    */

public class LaptopsWindowDialog extends JDialog implements ActionListener {
	private Laptops laptop;

	private static final long serialVersionUID = 1L;
	Font font = new Font("MonoSpaced", Font.ITALIC, 14);
	JLabel processorlabel = new JLabel("Procesor");
	JLabel colorlabel = new JLabel("Kolor");
	JLabel pricelabel = new JLabel("Cena");
	JLabel manufacturerlabel = new JLabel("Producent");

	JTextField processorfield = new JTextField(13);
	JTextField colorfield = new JTextField(13);
	JTextField pricefield = new JTextField(13);
	JComboBox<Manufacturer> mBox = new JComboBox<Manufacturer>(Manufacturer.values());

	JButton OKButton = new JButton("OK");
	JButton CancelButton = new JButton("Cancel");

	private LaptopsWindowDialog(Window window, Laptops laptop) {
		super(window, Dialog.ModalityType.DOCUMENT_MODAL);

		setSize(200, 400);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setLocationRelativeTo(window);

		this.laptop = laptop;

		OKButton.addActionListener(this);
		CancelButton.addActionListener(this);

		JPanel panel = new JPanel();
		panel.add(pricelabel);
		panel.add(pricefield);

		panel.add(colorlabel);
		panel.add(colorfield);

		panel.add(processorlabel);
		panel.add(processorfield);

		panel.add(manufacturerlabel);
		panel.add(mBox);

		panel.add(OKButton);
		panel.add(CancelButton);

		setContentPane(panel);
		setVisible(true);
	}

	public void actionPerformed(ActionEvent event) {

		Object source = event.getSource();
		
		if(source ==OKButton)
		{
			try {
			if (laptop == null) { 
				laptop=new Laptops(colorfield.getText(),processorfield.getText());
			} else { 
				laptop.Setcolor(colorfield.getText());
				laptop.Setprocessor(processorfield.getText());
			}
			
			laptop.Setprice(pricefield.getText());
			laptop.Setmanufacture((Manufacturer) mBox.getSelectedItem());
			
			dispose();
			}
			catch(LaptopsException e) {
				JOptionPane.showMessageDialog(this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
			}
		}
		if (source==CancelButton)
			
			dispose();
		}
	public static Laptops createNewLaptop(Window parent) {
		LaptopsWindowDialog dialog = new LaptopsWindowDialog(parent, null);
		return dialog.laptop;
	}
	
	
	public static void changeLaptopData(Window parent, Laptops laptop) {
		new LaptopsWindowDialog(parent, laptop);
	}
	
	}

 

Podobne pytania

0 głosów
1 odpowiedź 122 wizyt
pytanie zadane 28 lipca 2018 w Java przez wooeL Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 724 wizyt
+1 głos
1 odpowiedź 879 wizyt
pytanie zadane 14 marca 2017 w PHP przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...