Я очень новичок в этом.Мое приложение работает нормально, за исключением печати от HashMap
до JTable
в VisaArtiklarWindow
.это должно быть сделано через класс контроллера.Я пытался использовать TableModel
и некоторые другие вещи, но, похоже, ничего не работает.Какие-либо предложения?
Контроллер UiC:
public class UiController {
private NyArtikelWindow nyAW;
private NyKundWindow nyKW;
private NyOrderWindow nyOW;
private VisaArtiklarWindow nyVAW;
private VisaOrdrarWindow nyVOW;
private SokKundWindow nyVSW;
private MainWindow nyMW;
private Controller controller;
public UiController(Controller newController) {
This.controller=newController;
nyMW = new MainWindow(controller,this);
nyKW= new NyKundWindow (controller, this);
nyOW= new NyOrderWindow(controller, this);
nyVAW= new VisaArtiklarWindow(controller, this);
nyVOW = new VisaOrdrarWindow(controller, this);
nyVSW = new SokKundWindow(controller, this);
}
public void setVisibleOnMain(){
nyMW.setVisibleOn();
}
public void setVisibleOffMain() {
nyMW.setVisibleOff();
}
public void setVisibleOnKund() {
nyKW.setVisibleOn();
}
public void setVisibleOnArtikel() {
nyAW.setVisibleOn();
}
public void setVisibleOnOrder() {
nyOW.setVisibleOn();
}
public void setVisibleOnVisaArtikel() {
nyVAW.setVisibleOn();
}
public void setVisibleOnVisaOrder() {
nyVOW.setVisibleOn();
}
public void setVisibleOnSokKund() {
nyVSW.setVisibleOn();
}
}
Контроллер:
public class Controller {
private ArtikelReg ar;
private UiController uiController;
private KundReg kr;
private KundOrderReg or;
public Controller() {
uiController = new UiController(this);
ar = new ArtikelReg(this);
kr = new KundReg(this);
or = new KundOrderReg(this);
uiController.setVisibleOnMain();
}
public void addKund (int nyttKundnr, String nyttPersorgnr,
String nyttNamn, String nyttKontaktperson,
String nyttAdress, int nyttPostnr,
String nyttOrt, int nyttTelefonnr,
String nyttEpost) {
Kund nyKund = new Kund(nyttKundnr, nyttPersorgnr, nyttNamn, nyttKontaktperson, nyttAdress, nyttPostnr, nyttOrt, nyttTelefonnr, nyttEpost);
kr.AddKund(nyKund);
}
public Kund updateKund(int nyttKundnr, String nyttPersorgnr,
String nyttNamn, String nyttKontaktperson,
String nyttAdress, int nyttPostnr,
String nyttOrt, int nyttTelefonnr,
String nyttEpost){
Kund kund = new Kund(nyttKundnr, nyttPersorgnr, nyttNamn, nyttKontaktperson, nyttAdress, nyttPostnr, nyttOrt, nyttTelefonnr, nyttEpost);
kr.AddKund(kund);
return kund;
}
public void addArtikel(int nyttArtikelnr, String nyttNamn, double nyttInpris, double nyttUtpris) {
Artikel artikel = new Artikel(nyttArtikelnr, nyttNamn, nyttInpris, nyttUtpris);
ar.addArtikel(artikel);
}
public Artikel updateArtikel(int nyttArtikelnr, String nyttNamn, double nyttInpris, double nyttUtpris) {
Artikel artikel = new Artikel(nyttArtikelnr, nyttNamn, nyttInpris, nyttUtpris);
ar.addArtikel(artikel);
return artikel;
}
}
Создать окно статьи:
public class NyArtikelWindow extends JFrame {
private JLabel lblArtikelnummer = new JLabel();
private JTextField txtArtikelnummer = new JTextField();
private JTextField txtArtikelnamn = new JTextField();
private JTextField txtInpris = new JTextField();
private JTextField txtUtpris = new JTextField();
private JTextField txtLeverantor = new JTextField();
private JLabel lblArtikelnamn = new JLabel();
private JLabel lblInpris = new JLabel();
private JLabel lblUtpris = new JLabel();
private JLabel lblLeverantor = new JLabel();
private JButton btnSpara = new JButton();
private JButton btnAvbryt = new JButton();
private Controller controller;
private UiController uicontroller;
public NyArtikelWindow(Controller controller, UiController uiController){
this.controller = controller;
this.uicontroller = uiController;
this.getContentPane().setLayout( null );
this.setSize(new Dimension(432, 285));
this.setTitle("Ny artikel");
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
lblArtikelnummer.setText("Artikelnummer:");
lblArtikelnummer.setBounds(new Rectangle(25, 35, 75, 15));
txtArtikelnummer.setBounds(new Rectangle(105, 30, 110, 20));
lblArtikelnamn.setText("Artikelnamn:");
lblArtikelnamn.setBounds(new Rectangle(30, 80, 65, 15));
txtArtikelnamn.setBounds(new Rectangle(105, 75, 280, 20));
lblInpris.setText("Inpris:");
lblInpris.setBounds(new Rectangle(60, 160, 34, 14));
txtInpris.setBounds(new Rectangle(105, 155, 60, 20));
lblUtpris.setText("Utpris:");
lblUtpris.setBounds(new Rectangle(180, 160, 34, 14));
txtUtpris.setBounds(new Rectangle(220, 155, 60, 20));
lblLeverantor.setText("Leverantör:");
lblLeverantor.setBounds(new Rectangle(30, 115, 60, 15));
txtLeverantor.setBounds(new Rectangle(105, 110, 280, 20));
btnSpara.setText("Spara");
btnSpara.setBounds(new Rectangle(250, 215, 75, 21));
btnSpara.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btnSpara_actionPerformed(e);
}
});
btnAvbryt.setText("Avbryt");
btnAvbryt.setBounds(new Rectangle(330, 215, 75, 21));
btnAvbryt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
NyArtikelWindow.this.setVisible( false );
NyArtikelWindow.this.dispose();
}
});
this.getContentPane().add(btnAvbryt, null);
this.getContentPane().add(btnSpara, null);
this.getContentPane().add(txtLeverantor, null);
this.getContentPane().add(lblLeverantor, null);
this.getContentPane().add(txtUtpris, null);
this.getContentPane().add(lblUtpris, null);
this.getContentPane().add(txtInpris, null);
this.getContentPane().add(lblInpris, null);
this.getContentPane().add(txtArtikelnamn, null);
this.getContentPane().add(lblArtikelnamn, null);
this.getContentPane().add(txtArtikelnummer, null);
this.getContentPane().add(lblArtikelnummer, null);
}
public void setVisibleOn() {
setVisible(true);
}
public void btnSpara_actionPerformed(ActionEvent e) {
String Artikelnr = txtArtikelnummer.getText();
String nyttNamn = txtArtikelnamn.getText();
String Inpris = txtInpris.getText();
String Utpris = txtUtpris.getText();
int nyttArtikelnr = Integer.parseInt(Artikelnr);
double nyttInpris = Double.parseDouble(Inpris);
double nyttUtpris = Double.parseDouble(Utpris);
System.out.println(nyttArtikelnr+nyttNamn+nyttInpris+nyttUtpris);
controller.addArtikel(nyttArtikelnr, nyttNamn, nyttInpris, nyttUtpris);
txtArtikelnummer.setText(null); //btntest
}
}
ArtikelReg:
import java.util.*;
public class ArtikelReg {
private HashMap<Integer, Artikel> artikelreg = new HashMap<Integer, Artikel> ();
private Controller controller;
public ArtikelReg(Controller controller) {
this.controller = controller;
}
//lägg till en Artikel
public void addArtikel(Artikel artikel){
artikelreg.put(artikel.getArtikelnr(), artikel);
}
//Ta bort Artikel
public void raderaArtikel(Kund RaderaKund){
artikelreg.remove(RaderaKund);
}
//hämtar artikelregistret
public HashMap <Integer, Artikel> getArtikelreg(){
return this.artikelreg;
}
public void setArtikelReg(HashMap<Integer, Artikel> artikelreg) {
this.artikelreg = artikelreg;
}
//Hämtar en artikel ur registret
public Artikel visaArtikel(int Artikelnr){
return artikelreg.get(Artikelnr);
}
}
Показать окно статьи
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class VisaArtiklarWindow extends JFrame {
private JLabel lblArtiklar = new JLabel();
private JTable tblArtiklar = new JTable();
private JButton btnNy = new JButton();
private JButton btnTabort = new JButton();
private JButton btnStang = new JButton();
private Controller controller;
private UiController uicontroller;
public VisaArtiklarWindow (Controller controller, UiController uiController) {
this.controller = controller;
this.uicontroller = uiController;
this.getContentPane().setLayout( null );
this.setSize(new Dimension(627, 388));
this.setTitle( "Visa artiklar" );
lblArtiklar.setText("Artiklar:");
lblArtiklar.setBounds(new Rectangle(30, 30, 55, 15));
tblArtiklar=new JTable();
tblArtiklar.setBounds(new Rectangle(30, 50, 490, 250));
tblArtiklar.setModel(controller.toTableModel());
btnNy.setText("Ny...");
btnNy.setBounds(new Rectangle(530, 50, 75, 21));
btnNy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btnNy_actionPerformed(e);
}
});
btnTabort.setText("Ta bort");
btnTabort.setBounds(new Rectangle(530, 80, 75, 21));
btnStang.setText("Stäng");
btnStang.setBounds(new Rectangle(530, 320, 75, 21));
this.getContentPane().add(btnStang, null);
this.getContentPane().add(btnTabort, null);
this.getContentPane().add(btnNy, null);
this.getContentPane().add(tblArtiklar, null);
this.getContentPane().add(lblArtiklar, null);
}
public void setVisibleOn() {
setVisible(true);
}
}