Witam. Mam następujący problem: robię projekcik pseudo hurtowni z jakimiś częściami grami itp. Problem polega na tym(jest to projekt na zaliczenie), że warstwa klienta musi być oddzielona od warstwy aplikacji. Przeszkadza to w tym, że w klasie GUI, w której jest main i wszystko wykonuje potrzebuje wczytać obiekty z klasy Konsola. Nie wiem jak to zrobić, nie mogę także ich stworzyć od nowa w klasie GUI w tym mainie gdyż właśnie tego nie można zrobić(takie utrudnienie). Proszę o pomoc w jaki sposób mogę właśnie te elementy wywołać z klasy Konsole w klasie GUI i później sobie je pododawać do listy?
package com.company;
public class Konsola extends Komponent {
public static void magazynKonsoli() {
Konsola[] konsola = new Konsola[10];
Konsola kon = new Konsola("elo",1,1,"elo");
public String getNazwa{return this.nazwa}
}
public static void main(String[] args) {
}
public Konsola(String nazwa, int waga, int cena, String producent) {
super(nazwa, waga, cena, producent);
}
}
package com.company;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import javax.swing.event.ListSelectionListener;
import static com.company.Konsola.magazynKonsoli;
/**
* Created by Przemek on 14.01.2017.
*/
public class GUI {
private JCheckBox karta;
private JPanel panel1;
private JCheckBox gotowka;
private JTextField platnosc;
private JTextField komunikaty;
private JList magazyn;
private JButton dodaj;
private JButton usun;
private JList koszyk;
public GUI(Komponent kom) {
komunikaty.setForeground(Color.RED);
karta.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED ) {
platnosc.setText("Wybrales platnosc kartą");
if(kom.platnosc == 1) {
komunikaty.setText("Wybierz jeden rodzaj platnosci!");
}
kom.licznikplus();
}
if(e.getStateChange() ==ItemEvent.DESELECTED){
kom.licznikminus();
komunikaty.setText(" ");
}
}
});
gotowka.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED ) {
platnosc.setText("Wybrales platnosc gotowką");
if(kom.platnosc == 1){
komunikaty.setText("Wybierz jeden rodzaj platnosci!");
}
kom.licznikplus();
}
if(e.getStateChange() ==ItemEvent.DESELECTED){
kom.licznikminus();
komunikaty.setText(" ");
}
}
});
Konsola.magazynKonsoli();
magazyn.setLayoutOrientation(JList.VERTICAL);
magazyn.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
magazyn.setVisibleRowCount(-1);
magazyn.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting() == false) {
if (magazyn.getSelectedIndex() == -1) {
dodaj.setEnabled(false);
} else {
dodaj.setEnabled(true);
}
}
}
});
DefaultListModel dlm = new DefaultListModel();
magazyn.setModel(dlm);
dlm.addElement(kom.nazwa);
koszyk.setLayoutOrientation(JList.VERTICAL);
koszyk.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
koszyk.setVisibleRowCount(-1);
}
public static void main(String[] args) {
Komponent kom = new Komponent("konsola", 100, 100, "sony");
JFrame frame = new JFrame("GUI");
frame.setContentPane(new GUI(kom).panel1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}