17. december 2003 - 12:55
Der er
4 kommentarer og
1 løsning
Hjælp til afbildning af objekter i GUI
Jeg har trukket et objekt ud af en vector ved hjælp af en søgeknap i et GUIbillede. Når objektet er fundet, går jeg direkte over i et andet GUI, hvor objektet skal afbildes i forskellige JTextFields. Mit objekt indeholder fx. navn, hvilket skal stå som default når man kommer ind på næste billede. Nogen bud?
17. december 2003 - 13:30
#2
Nu er jeg ikke helt så kvik i det, så jeg spørger lige videre :-):
Hvor kommer getRelevantText fra? Er det en metode, jeg selv skal skrive først? Med forlov, her kommer koden til de to GUIer der kommer først, samt objekt-klassen Journal:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
/**
* @author ehdaniel
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class JournalGUI extends Forside implements ActionListener{
private JLabel label = new JLabel("Søg efter journal:");
public JTextField soegeFelt = new JTextField(20);
private JButton soeg, nyKlient;
Container container = getContentPane();
private Controller cont;
public JournalGUI(){
cont = new Controller();
JPanel journalPanel = new JPanel();
// journalPanel.setLayout(new FlowLayout());
soeg = new JButton("Søg!");
nyKlient = new JButton("Opret ny klient:");
journalPanel.add(label, BorderLayout.SOUTH);
journalPanel.add(soegeFelt, BorderLayout.SOUTH);
journalPanel.add(soeg, BorderLayout.SOUTH);
journalPanel.add(nyKlient, BorderLayout.SOUTH);
container.add(journalPanel, BorderLayout.SOUTH);
tabJournal.add(journalPanel);
soeg.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == soeg){
Vector v = cont.soegEfter(soegeFelt.getText());
System.out.println("Der blev trykket på søg!");
System.out.println(v);
if(v.isEmpty()){
System.out.println("der findes ingen med navnet:" + soegeFelt.getText());
}
if (v.size()>1){
System.out.println("Der findes flere med navnet.. vi kan pt. ikke håndtere dette..");
}
if (v.size() ==1){
System.out.println("Der blev fundet 1 resultat, og det er her: ");
JournalObjekt jo = (JournalObjekt) v.get(0);
System.out.println(jo);
KlientJournalGUI kjg = new KlientJournalGUI();
//String navn = jo.getNavn();
// String n= jo.getNavn();
// navn.setText(n);
}
}
}
public static void main(String[] args) {
JournalGUI jg = new JournalGUI();
jg.setVisible(true);
//Forside f = new Forside();
//f.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* @author ehdaniel
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class KlientJournalGUI extends Forside implements ActionListener{
private JButton gem, kontrakt, diagnoseskema;
private JTextField navn = new JTextField();
private JTextField adresse = new JTextField();
private JTextField tlfnr = new JTextField();
private JTextField cprnr = new JTextField();
private JTextField dato = new JTextField();
private JournalObjekt jo;
private JTextField konsultationsnr = new JTextField();
private JTextArea journal = new JTextArea(" Journal:",15,60);
private JLabel tomKnap1, tomKnap2,tomKnap3, tomKnap4, tomKnap5,
tomKnap6, tomKnap7, tomKnap8, tomKnap9, tomKnap10, tomKnap11, tomKnap12,
tomKnap13, tomKnap14, tomKnap15, tomKnap16;
private String n = new String();
public KlientJournalGUI(){
JPanel north = new JPanel();
JPanel center = new JPanel();
JPanel south = new JPanel();
north.setLayout(new GridLayout(6,2));
center.setLayout(new GridLayout(1,1));
south.setLayout(new GridLayout(1,1));
JLabel label = new JLabel("Navn:", JLabel.LEFT);
north.add(label);
north.add(navn);
String n= jo.getNavn();
navn.setText("n");
tomKnap1 = new JLabel ("");// vær lige obs om det skal være med JLabel først
north.add(tomKnap1);
tomKnap2 = new JLabel ("");
north.add(tomKnap2);
kontrakt = new JButton("Kontrakt");
kontrakt.addActionListener(this);
north.add(kontrakt);
label = new JLabel("Adresse:", JLabel.LEFT);
north.add(label);
north.add(adresse);
tomKnap3 = new JLabel ("");
north.add(tomKnap3);
tomKnap4 = new JLabel ("");
north.add(tomKnap4);
tomKnap5 = new JLabel ("");
north.add(tomKnap5);
label = new JLabel("Tlf.nr:", JLabel.LEFT);
north.add(label);
north.add(tlfnr);
tomKnap6 = new JLabel ("");
north.add(tomKnap6);
tomKnap7 = new JLabel ("");
north.add(tomKnap7);
diagnoseskema = new JButton("Diagnoseskema");
diagnoseskema.addActionListener(this);
north.add(diagnoseskema);
label = new JLabel("Cpr.nr:", JLabel.LEFT);
north.add(label);
north.add(cprnr);
tomKnap8 = new JLabel ("");
north.add(tomKnap8);
tomKnap9 = new JLabel ("");
north.add(tomKnap9);
tomKnap10 = new JLabel ("");
north.add(tomKnap10);
tomKnap11 = new JLabel ("");
north.add(tomKnap11);
tomKnap12 = new JLabel ("");
north.add(tomKnap12);
tomKnap13 = new JLabel ("");
north.add(tomKnap13);
tomKnap14 = new JLabel ("");
north.add(tomKnap14);
tomKnap15 = new JLabel ("");
north.add(tomKnap15);
label = new JLabel("Dato:", JLabel.LEFT);
north.add(label);
north.add(dato);
tomKnap16 = new JLabel ("");
north.add(tomKnap16);
label = new JLabel("Konsultationsnr:", JLabel.RIGHT);
north.add(label);
north.add(konsultationsnr);
center.add(journal);
gem = new JButton("Gem");
// HUSK AT RETURNERE TIL JournalGUI!!!
gem.addActionListener(this);
south.add(gem);
tabJournal.add(north,BorderLayout.NORTH);
tabJournal.add(center, BorderLayout.CENTER);
tabJournal.add(south, BorderLayout.SOUTH);
this.setVisible(true);
}
public void actionPerformed(ActionEvent event){
if (event.getSource() == gem){
System.out.println("Gemmer");
}else if (event.getSource()==kontrakt){
System.out.println("Kontrakt");
}else if (event.getSource()==diagnoseskema){
System.out.println("Diagnoseskema");
}
}
private void setText()
{
navn.setText(jo.);
//osv.
}
//public static void main(String[] args){
//KlientJournalGUI k = new KlientJournalGUI();
//k.setVisible(true);
//}
}
import java.io.Serializable;
import java.util.ArrayList;
/**
* @author ehdaniel
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class JournalObjekt implements Serializable{
public String navn, adresse;
public int tlfnr, cprnr;
private ArrayList konsultationsListe = new ArrayList();
//int[] konsultation;
//konsultationsListe.
public JournalObjekt(){
}
public JournalObjekt(String n, String adr, int tlf,int cpr, Konsultationer konsultationer){
navn = n;
adresse = adr;
tlfnr = tlf;
cprnr = cpr;
konsultationsListe.add(konsultationer);
}
/**
* Returns the adresse.
* @return String
*/
public String getAdresse() {
return adresse;
}
/**
* Returns the cprnr.
* @return int
*/
public int getCprnr() {
return cprnr;
}
/**
* Returns the navn.
* @return String
*/
public String getNavn() {
return navn;
}
/**
* Returns the tlfnr.
* @return int
*/
public int getTlfnr() {
return tlfnr;
}
/**
* Sets the adresse.
* @param adresse The adresse to set
*/
public void setAdresse(String adresse) {
this.adresse = adresse;
}
/**
* Sets the cprnr.
* @param cprnr The cprnr to set
*/
public void setCprnr(int cprnr) {
this.cprnr = cprnr;
}
/**
* Sets the navn.
* @param navn The navn to set
*/
public void setNavn(String navn) {
this.navn = navn;
}
/**
* Sets the tlfnr.
* @param tlfnr The tlfnr to set
*/
public void setTlfnr(int tlfnr) {
this.tlfnr = tlfnr;
}
}
Jeg håber det er til at overskue. Der skabes et objekt, som ad omveje kommer over i GUI nr 1, som er JournalGUI. Her trækker man objektet ud af en vector og får spyttet objektet ud. Her efter skal der vises i JTextFields.
Pyha, en ordentlig omgang!