10. december 2002 - 13:05
#10
det må være nemmere, hvis I får noget kode at kigge på..
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
import java.sql.*;
/**
* <p>Title: JournalVindue</p>
* <p>Description:Viser en Journal ud fra et ResultSet </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Fastlane Multimedia</p>
* @author Nilez
* @version 1.0
*/
public class JournalVindue extends VindueSkabelon{
/** Her erklærer vi alle elementerne som indgår i menuen
* Bagefter følger indholdet til det Scrollpane,
* som skal udgøre selve indholdet i Journalvisning.
*/
private JScrollPane indholdScrollPane;
private JPanel indholdPanel;
//Næste Labels skal omdøbes!!
public JTextField loennummerText = new JTextField();
public JComboBox antalminCombo = new JComboBox();
private JLabel AONRLabel = new JLabel();
private JLabel tidsforbrugLabel = new JLabel();
private JLabel faseLabel = new JLabel();
private JLabel datoEksLabel = new JLabel();
private JLabel kategoriLabel = new JLabel();
private JButton importerKnap = new JButton();
private JLabel prisLabel = new JLabel();
private JButton gemJournalKnap = new JButton();
private JLabel fremmoedeLabel = new JLabel();
private JLabel opfoelgningLabel = new JLabel();
//3 Labels, der står Årsag: på og tilhøredne EditorPanes
public JEditorPane afbudAarsag = new JEditorPane();
public JEditorPane opfoelgningAarsag = new JEditorPane();
public JEditorPane fremmoedeAarsag = new JEditorPane();
private JLabel AarsagLabel1 = new JLabel();
private JLabel AarsagLabel2 = new JLabel();
private JLabel AarsagLabel3 = new JLabel();
private JLabel AfbudLabel1 = new JLabel();
//Scroll til editorpanes
public JScrollPane forloebScrollPane = new JScrollPane();
private JScrollPane sygdomScrollpane = new JScrollPane();
//EditorPanes
public JTextArea sygdomshistorieText = new JTextArea();
public JTextArea forloebText= new JTextArea();
//Kategoriknapper*****
public JRadioButton KategoriAKnap = new JRadioButton();
public JRadioButton KategoriBKnap = new JRadioButton();
public JRadioButton KategoriCKnap = new JRadioButton();
public ButtonGroup Kategoriknapper = new ButtonGroup();
//EffektKnapper*****
public ButtonGroup EffektKnapper = new ButtonGroup();
public JRadioButton IngenBedringKnap = new JRadioButton();
public JRadioButton ForværringKnap = new JRadioButton();
public JRadioButton BedringKnap = new JRadioButton();
//******************
//FaseKnapper********
public ButtonGroup FaseKnapper = new ButtonGroup();
public JRadioButton faseForebyggelseKnap = new JRadioButton();
public JRadioButton faseNedtrapningKnap = new JRadioButton();
public JRadioButton faseOpstartKnap = new JRadioButton();
//**************
//BetalingsKnapper**********
public ButtonGroup BetalingsKnapper = new ButtonGroup();
public JRadioButton Gavekortknap = new JRadioButton();
public JRadioButton AONRKnap = new JRadioButton();
public JRadioButton BetalerSelvKnap = new JRadioButton();
//******************
//ALLE HERUNDER SKAL OMDØBES!!
private JLabel arkivHeaderLabel = new JLabel();
private JLabel loenNummerLabel = new JLabel();
private JLabel navnLabel = new JLabel();
private JLabel initialLabel = new JLabel();
private JLabel efternavnLabel = new JLabel();
private JLabel sygdomshistorieLabel = new JLabel();
private JLabel datoLabel = new JLabel();
private JLabel effektLabel = new JLabel();
public JTextField afbudText = new JTextField();
public JTextField navnText = new JTextField();
public JTextField initialText = new JTextField();
public JTextField efternavnText = new JTextField();
public JTextField AOText = new JTextField();
public JTextField mangelfremmødeText = new JTextField();
public JTextField mangelrådText = new JTextField();
public JTextField datoText = new JTextField();
public JTextField prisText = new JTextField();
//ER DER EN LIDELSELABEL HVOR??
private JLabel LidelseLabel = new JLabel();
private Main main;
/** Her begynder erklæringen af knapper og menuer,
* som skal indgå i vinduet
*/
private TitledBorder titledBorder1;
private ResultSet rs;
//************************
/**
* Constructor for objects of class JournalVindue
*/
public JournalVindue(ResultSet rs)
{
try{
System.out.println(rs.next());
rs.next();
System.out.println(rs.getString( 2 ));
}
catch(SQLException e){
System.err.println("Fejl ved forsøg på at flytte til første post i Resultset: "+e.getMessage());
}
//*****Indholdspanel
Container contentPane = getContentPane();
indholdPanel = new JPanel();
indholdPanel.setPreferredSize(new Dimension(640, 903));
indholdScrollPane = new JScrollPane(indholdPanel);
indholdScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
indholdScrollPane.setPreferredSize(new Dimension(250, 250));
//*************
//**********************Vinduet med menuer og knapper
this.setBounds(250, 0, 650, 800);
this.setTitle("Klient Journal Statistik System");
//***************Indoldsting, textfelter, knapper osv..
faseForebyggelseKnap.setBackground(new Color(247, 217, 124));
faseForebyggelseKnap.setText("Forebyggelse");
faseForebyggelseKnap.setBounds(new Rectangle(520, 221, 102, 24));
faseOpstartKnap.setBackground(new Color(247, 217, 124));
faseOpstartKnap.setText("Opstart");
faseOpstartKnap.setSelected(true);
faseOpstartKnap.setBounds(new Rectangle(519, 166, 102, 24));
faseNedtrapningKnap.setBounds(new Rectangle(520, 193, 102, 24));
faseNedtrapningKnap.setText("Nedtrapning");
faseNedtrapningKnap.setBackground(new Color(247, 217, 124));
fremmoedeAarsag.setBounds(new Rectangle(334, 378, 111, 43));
fremmoedeAarsag.setBorder(titledBorder1);
AONRKnap.setBounds(new Rectangle(181, 733, 127, 25));
AONRKnap.setText("Trækkes fra AONR");
AONRKnap.setBackground(new Color(247, 217, 127));
BetalerSelvKnap.setBounds(new Rectangle(186, 754, 103, 25));
BetalerSelvKnap.setText("Betaler selv");
BetalerSelvKnap.setBackground(new Color(247, 217, 127));
AfbudLabel1.setText("Afbud: ");
AfbudLabel1.setBounds(new Rectangle(173, 334, 42, 22));
AOText.setBounds(new Rectangle(89, 67, 37, 24));
//AOText.setText("TIIIIIS");
antalminCombo.setBounds(new Rectangle(16, 706, 125, 21));
antalminCombo.setEditable(true);
antalminCombo.addItem("10");
antalminCombo.addItem("15");
antalminCombo.addItem("20");
antalminCombo.addItem("25");
antalminCombo.addItem("30");
AONRLabel.setText("AONR:");
AONRLabel.setBounds(new Rectangle(87, 44, 48, 17));
tidsforbrugLabel.setBounds(new Rectangle(18, 679, 106, 30));
tidsforbrugLabel.setText("Tidsforbrug i dag: ");
faseLabel.setText("Fase: ");
faseLabel.setBounds(new Rectangle(517, 137, 108, 25));
datoEksLabel.setText("eks: 11/02");
datoEksLabel.setBounds(new Rectangle(90, 643, 66, 24));
kategoriLabel.setText("Kategori:");
kategoriLabel.setBounds(new Rectangle(454, 42, 110, 29));
importerKnap.setBounds(new Rectangle(12, 330, 136, 31));
importerKnap.setText("Importér fra txt-fil");
/**
* Her lægges der actionlistener på importknappen:
*/
importerKnap.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent j) { importerknapActionperformed(j); }
});
gemJournalKnap.setBounds(new Rectangle(490, 787, 121, 31));
gemJournalKnap.setText("Gem journal");
/**
* Her lægges der actionlistener på gemknappen:
*/
gemJournalKnap.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent j) { gemJournalKnapActionperformed(j); }
});
prisLabel.setText("Pris:");
prisLabel.setBounds(new Rectangle(157, 687, 48, 17));
fremmoedeLabel.setText("Manglende fremmøde:");
fremmoedeLabel.setBounds(new Rectangle(265, 337, 146, 17));
AarsagLabel1.setText("Årsag: ");
AarsagLabel1.setBounds(new Rectangle(169, 361, 48, 17));
AarsagLabel2.setBounds(new Rectangle(337, 361, 48, 17));
AarsagLabel2.setText("Årsag: ");
opfoelgningLabel.setBounds(new Rectangle(430, 337, 170, 17));
opfoelgningLabel.setText("Manglende opfølgning på råd:");
AarsagLabel3.setText("Årsag: ");
AarsagLabel3.setBounds(new Rectangle(488, 366, 48, 17));
sygdomshistorieText.setVisible(true);
sygdomshistorieText.setEditable(true);
sygdomshistorieText.setLineWrap(true);
sygdomshistorieText.setWrapStyleWord(true);
sygdomshistorieText.setText("Sygdomshistorie");
forloebText.setText("forløb:");
forloebText.setVisible(true);
forloebText.setEditable(true);
forloebText.setLineWrap(true);
forloebText.setWrapStyleWord(true);
//forloebText.setEditorKit(null);
ForværringKnap.setBounds(new Rectangle(343, 515, 103, 25));
ForværringKnap.setText("Forværring");
ForværringKnap.setBackground(new Color(247, 217, 124));
Gavekortknap.setBackground(new Color(247, 217, 127));
Gavekortknap.setText("Gavekort");
Gavekortknap.setBounds(new Rectangle(178, 712, 103, 25));
BedringKnap.setBackground(new Color(247, 217, 124));
BedringKnap.setSelected(true);
BedringKnap.setText("Bedring");
BedringKnap.setBounds(new Rectangle(345, 470, 103, 25));
IngenBedringKnap.setBackground(new Color(247, 217, 124));
IngenBedringKnap.setText("Ingen bedring");
IngenBedringKnap.setBounds(new Rectangle(344, 491, 103, 25));
KategoriAKnap.setBackground(new Color(247, 217, 124));
KategoriAKnap.setSelected(true);
KategoriAKnap.setText("A");
KategoriAKnap.setBounds(new Rectangle(462, 76, 41, 16));
KategoriBKnap.setBounds(new Rectangle(504, 76, 39, 16));
KategoriBKnap.setBackground(new Color(247, 217, 124));
KategoriBKnap.setText("B");
KategoriCKnap.setBounds(new Rectangle(545, 76, 41, 16));
KategoriCKnap.setBackground(new Color(247, 217, 124));
KategoriCKnap.setText("C");
afbudAarsag.setBorder(titledBorder1);
afbudAarsag.setBounds(new Rectangle(166, 376, 111, 43));
arkivHeaderLabel.setIcon(new ImageIcon(Main.class.getResource("JournalHeader.gif")));
arkivHeaderLabel.setBounds(new Rectangle(-1, 0, 675, 40));
loenNummerLabel.setText("Lønnummer:");
loenNummerLabel.setBounds(new Rectangle(8, 41, 82, 25));
opfoelgningAarsag.setBounds(new Rectangle(484, 381, 111, 43));
opfoelgningAarsag.setBorder(titledBorder1);
navnLabel.setText("Navn: ");
navnLabel.setBounds(new Rectangle(157, 41, 112, 27));
initialLabel.setText("Initialer:");
initialLabel.setBounds(new Rectangle(248, 39, 98, 28));
efternavnLabel.setText("Efternavn:");
efternavnLabel.setBounds(new Rectangle(320, 37, 99, 32));
sygdomshistorieLabel.setText("Sygdomshistorie:");
sygdomshistorieLabel.setBounds(new Rectangle(4, 108, 203, 30));
LidelseLabel.setText("Lidelser: ");
LidelseLabel.setBounds(new Rectangle(10, 413, 144, 32));
datoLabel.setText("Dato:");
datoLabel.setBounds(new Rectangle(19, 625, 41, 17));
effektLabel.setText("Behandlingsforløbets effekt:");
effektLabel.setBounds(new Rectangle(343, 443, 245, 30));
afbudText.setText("0");
afbudText.setBounds(new Rectangle(215, 336, 20, 20));
//navnText.setText("Kristoffer");
navnText.setBounds(new Rectangle(156, 66, 84, 27));
//initialText.setText("KB");
initialText.setBounds(new Rectangle(262, 67, 24, 26));
//efternavnText.setText("Bundgaard");
efternavnText.setBounds(new Rectangle(320, 66, 105, 27));
//****** Hvordan f* får vi fat i den integer og smidt den ind... aaargh.. det er tæt på... must sleep!
//
//*********
//System.out.println(rs.getInt(1));
//System.out.println(rs.getInt("L_Nummer"));
//loennummerText.setText(String.valueOf(rs.getInt( 1 )));
loennummerText.setBounds(new Rectangle(10, 67, 57, 24));
//*********************************forsøger lige at udskrive kolonnenavnene:
try {
ResultSetMetaData rsmd = rs.getMetaData();
int antalKolonner = rsmd.getColumnCount();
String kolonneNavne[ ] = new String[antalKolonner];
//udskriv kolonnernes navne:
for(int i=1;i<=antalKolonner;i++) //bemærk at der startes fra 1
{
kolonneNavne[i-1] = rsmd.getColumnName(i);
System.out.print(kolonneNavne[i-1]+", ");
}
}
catch(SQLException e){
System.err.println("Fejl ved forsøg på at bruge resultsettet til metadata: "+e.getMessage());
}
try {
System.out.println(rs.next());
rs.next();
int recordNumber = rs.getInt( 1 );
navnText.setText(rs.getString( 2 ));
}
catch(SQLException e){
System.err.println("Fejl ved brug af ResultSet: "+e.getMessage());
}
// ************************************************************************************************************************
mangelfremmødeText.setText("0");
mangelfremmødeText.setBounds(new Rectangle(398, 335, 18, 20));
mangelrådText.setBounds(new Rectangle(596, 332, 18, 20));
mangelrådText.setText("0");
datoText.setText("Måned/år");
datoText.setBounds(new Rectangle(19, 641, 68, 25));
prisText.setBounds(new Rectangle(198, 686, 49, 22));
BetalingsKnapper.add(Gavekortknap);
BetalingsKnapper.add(AONRKnap);
BetalingsKnapper.add(BetalerSelvKnap);
EffektKnapper.add(BedringKnap);
EffektKnapper.add(IngenBedringKnap);
EffektKnapper.add(ForværringKnap);
Kategoriknapper.add(KategoriAKnap);
Kategoriknapper.add(KategoriBKnap);
Kategoriknapper.add(KategoriCKnap);
FaseKnapper.add(faseForebyggelseKnap);
FaseKnapper.add(faseNedtrapningKnap);
FaseKnapper.add(faseOpstartKnap);
forloebScrollPane = new JScrollPane(forloebText);
sygdomScrollpane = new JScrollPane(sygdomshistorieText);
forloebScrollPane.setBounds(new Rectangle(9, 445, 311, 138));
sygdomScrollpane.setBounds(new Rectangle(5, 134, 501, 185));
forloebScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
sygdomScrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
forloebScrollPane.setPreferredSize(new Dimension(300, 100));
sygdomScrollpane.setPreferredSize(new Dimension(400, 100));
//**Kunne sikkert sagtens soreteres yderligere!!!
//*********************
indholdPanel.add(sygdomScrollpane);
indholdPanel.add(forloebScrollPane);
indholdPanel.setBackground(new Color(247, 217, 124));
indholdPanel.setLayout(null);
//*************ALt tilføjes indholdsPanel:
indholdPanel.add(arkivHeaderLabel, null);
indholdPanel.add(loennummerText, null);
indholdPanel.add(sygdomshistorieLabel, null);
indholdPanel.add(initialLabel, null);
indholdPanel.add(importerKnap, null);
indholdPanel.add(efternavnText, null);
indholdPanel.add(efternavnLabel, null);
indholdPanel.add(kategoriLabel, null);
indholdPanel.add(KategoriAKnap, null);
indholdPanel.add(KategoriBKnap, null);
indholdPanel.add(KategoriCKnap, null);
indholdPanel.add(faseLabel, null);
indholdPanel.add(faseOpstartKnap, null);
indholdPanel.add(faseNedtrapningKnap, null);
indholdPanel.add(faseForebyggelseKnap, null);
indholdPanel.add(AfbudLabel1, null);
indholdPanel.add(afbudText, null);
indholdPanel.add(fremmoedeLabel, null);
indholdPanel.add(mangelfremmødeText, null);
indholdPanel.add(AarsagLabel1, null);
indholdPanel.add(AarsagLabel2, null);
indholdPanel.add(opfoelgningLabel, null);
indholdPanel.add(mangelrådText, null);
indholdPanel.add(AarsagLabel3, null);
indholdPanel.add(LidelseLabel, null);
indholdPanel.add(afbudAarsag, null);
indholdPanel.add(fremmoedeAarsag, null);
indholdPanel.add(opfoelgningAarsag, null);
indholdPanel.add(effektLabel, null);
indholdPanel.add(BedringKnap, null);
indholdPanel.add(IngenBedringKnap, null);
indholdPanel.add(ForværringKnap, null);
indholdPanel.add(datoLabel, null);
indholdPanel.add(datoText, null);
indholdPanel.add(datoEksLabel, null);
indholdPanel.add(tidsforbrugLabel, null);
indholdPanel.add(antalminCombo, null);
indholdPanel.add(gemJournalKnap, null);
indholdPanel.add(prisText, null);
indholdPanel.add(prisLabel, null);
indholdPanel.add(Gavekortknap, null);
indholdPanel.add(initialText, null);
indholdPanel.add(loenNummerLabel, null);
indholdPanel.add(AONRLabel, null);
indholdPanel.add(AOText, null);
indholdPanel.add(navnText, null);
indholdPanel.add(navnLabel, null);
indholdPanel.add(AONRKnap, null);
indholdPanel.add(BetalerSelvKnap, null);
//her lægges det hele ind i vinduet!!
contentPane.add(indholdScrollPane, BorderLayout.CENTER);
}
//}
/**
* Metoder herefter:
*/
/**
* Denne metode henter en textfil med JFileChooser.
* Den sættes ind i sygdomshistorie.
*/
public void InsertText(){
try{
JFileChooser chooser = new JFileChooser();
int tmp = chooser.showOpenDialog( null); //igen den mystiske tmp variabel som ofres på javaalteret!!
File file = chooser.getSelectedFile();
if (file !=null) {
FileReader inReader;
BufferedReader bReader;
inReader = new FileReader(file);
bReader = new BufferedReader(inReader);
String inStr = bReader.readLine();
String str = sygdomshistorieText.getText();
while (inStr != null) {
str = str + "\n" + inStr;
inStr = bReader.readLine();
}
sygdomshistorieText.setText(str);
bReader.close();
}
}
catch (FileNotFoundException e){
System.out.println("Filen kan ikke indlæses");
}
catch (IOException e) {
System.out.println("Filen kan ikke indlæses");
}
}
//DEn er sateme lang den her klasse.. Her er alle addActionlisteners forsøgt samlet:
public void importerknapActionperformed(ActionEvent j){
InsertText();
}
public void gemJournalKnapActionperformed(ActionEvent j){
//Her skal gemJournal-metoden kaldes!!!
System.out.println("Dette er gemJournalKnappen, der skal blot lægges metode på");
//funktioner.gemJournal(this);
//ovenstående metode skal laves om, så den kalder opdaterJournal(this) i stedet!
main = new Main(" Du har nu gemt din journal, vælg en ny funktion eller afslut programmet ");
//funktioner = new Funktioner();
this.dispose();
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
//FindJournal_actionPerformed(null);
}
}
}
lang, rodet og irriterende kode