import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.awt.datatransfer.*;
import java.util.*;
import java.text.*;
class B2 extends JFrame
{
// ----------------------------------------------------------
// Variablen Deklaration
// ----------------------------------------------------------
private JButton inhalt, vereinbarung_erzeugen;
private JPanel nordPanel, centerPanel, südPanel, basisfallwert, hilfspanel, hilfspanel1, hilfspanel2, hilfspanel3, hilfspanel4, hilfspanel5, hilfspanel6, hilfspanel7;
private JLabel krankenhaus, krankenhaus_name, krankenhaus_strasse, krankenhaus_plz, krankenhaus_ort;
private JLabel Seite, Druckdatum, überschrift;
private JLabel fussnote1, fussnote2;
private JLabel fusszeile_links, fusszeile_mitte, fusszeile_rechts;
private Container con1;
private JLabel landesbasisfallwert;
private double landesbasisfallwert_betrag;
private JLabel landesbasisfallwert_String;
private Color farbe1, farbe2, farbe3;
/**
----------------------------------------------------------
Konstruktor der Fensterklasse
----------------------------------------------------------
*/
B2(String titel)
{
super(titel);
class inhaltListener implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
/*Fenster schließen*/
setVisible(false);
/* System-Ressourcen freigeben*/
dispose();
}
}
/*heutiges Datum*/
Date date = new Date();
String date_string = date.toString();
String druckdatum_String = new SimpleDateFormat("dd.MM.yyyy").format(date);
farbe1 = new Color(200,255,200);
farbe2 = new Color(255,200,200);
farbe3 = new Color(200,200,255);
con1 = getContentPane();
con1.setLayout(new BorderLayout());
nordPanel = new JPanel(new BorderLayout());
centerPanel = new JPanel(new BorderLayout());
südPanel = new JPanel(new BorderLayout());
basisfallwert = new JPanel(new GridLayout(3,0,0,0));
hilfspanel = new JPanel(new GridLayout(5,2,2,2));
hilfspanel1 = new JPanel(new GridLayout(2,2,2,2));
hilfspanel2 = new JPanel(new BorderLayout());
hilfspanel3 = new JPanel(new GridLayout(8,1,1,1));
hilfspanel4 = new JPanel(new GridLayout(2,0,5,5));
hilfspanel5 = new JPanel();
hilfspanel6 = new JPanel(new BorderLayout());
hilfspanel7 = new JPanel(new BorderLayout());
/*---------------------------------------------------*/
/*Formatierungen
/*---------------------------------------------------*/
Border rahmen = BorderFactory.createLineBorder(Color.black);
// ***** NORDPANEL******
// Hier kommt es noch zu einer Null-Pointer-Exception
//krankenhaus = new JLabel("Krankenhaus ");
/**************************************************************
/Hier kommt die Null-Pointer-Exception
/**************************************************************/
//krankenhaus_name = new JLabel(StartFrame.Name_text.getText());
//krankenhaus_strasse = new JLabel(StartFrame.Straße_text.getText());
//krankenhaus_plz = new JLabel(StartFrame.PLZ_text.getText());
//krankenhaus_ort = new JLabel(StartFrame.Ort_text.getText());
krankenhaus_name = new JLabel("Name");
//String krankenhaus_name_String = StartFrame.Name_text.getText().toString();
//krankenhaus_name = new JLabel(krankenhaus_name_String);
krankenhaus_strasse = new JLabel("Strasse");
krankenhaus_plz = new JLabel("PLZ");
krankenhaus_ort = new JLabel("Ort");
/*Diese Zeile ist auch für die anderen Formulare wichtig!!! Um ein Panel einen Rahmen ziehen*/
hilfspanel.setBorder( BorderFactory.createRaisedBevelBorder() );
//hilfspanel.add(krankenhaus);
hilfspanel.add(krankenhaus_name = new JLabel());
hilfspanel.add(krankenhaus_strasse);
hilfspanel.add(krankenhaus_plz);
hilfspanel.add(krankenhaus_ort);
Seite = new JLabel("Seite:");
Seite.setBorder(rahmen);
Druckdatum = new JLabel("druckdatum_String");
Druckdatum.setBorder(rahmen);
landesbasisfallwert = new JLabel("Landesbasisfallwert 2006 (gekappt)");
landesbasisfallwert_betrag = 2737.07;
landesbasisfallwert_String = new JLabel("2.737,07");
basisfallwert.setBackground(farbe3);
basisfallwert.setBorder(rahmen);
basisfallwert.add(landesbasisfallwert);
basisfallwert.add(landesbasisfallwert_String);
hilfspanel1.add(Seite);
hilfspanel1.add(Druckdatum);
hilfspanel7.add(hilfspanel, BorderLayout.WEST);
hilfspanel7.add(hilfspanel1, BorderLayout.CENTER);
hilfspanel7.add(basisfallwert, BorderLayout.EAST);
nordPanel.add(hilfspanel6, BorderLayout.WEST);
nordPanel.add(hilfspanel7, BorderLayout.SOUTH);
// ***** Ende NORDPANEL******
// ***** CENTERPANEL******
überschrift = new JLabel("B2 Erlösbudget und Basisfallwert nach § 4 KHEntgG ab dem Kalenderjahr 2005");
Font font = new Font("",Font.BOLD,12);
überschrift.setFont(font);
String B2_Label[] ={"lf.d Nr.", "Berechnungsschritte", "Vereinbarung für das laufende Kalenderjahr", "Vereinbarungszeitraum", ""};
Object[][] data =
{
{
"", "", "", "Forderung", "Vereinbarung"
},
{
"", "1", "2", "3", "4"
},
{
"", "Ermittlung des Ausgangswertes (Abs. 2 oder 3):", "", "", ""
},
{
"1", "Erlösbudget für das laufende Jahr", "", "", "", ""
},
{
"2", "./. Kosten für Zuschlagstatbestände (Nr. 1a)", "", "", ""
},
{
"3", "+- Veränderungen Entgelte nach § 6 (Nm. 1b und 3 sowie Abs. 4)", "", "", ""
},
{
"4", "./. entfallende Beiträge nach § 18b KHG (Nr. 1c)", "", "", ""
},
{
"5", "./. Leistungsverlagerungen (Nr. 1d)", "", "", ""
},
{
"6", "./. Modelle, ab 2007 ggf. Integrationsverträge (Nr. 1e)", "", "", ""
},
{
"7", "./. Ausgliederung ausländischer Patienten (Nr. 1f)", "", "", ""
},
{
"8", "./. Ausgliederung der Ausbildung (Nr. 1g; nur 2005)", "", "", ""
},
{
"9", "+/- Bereinigung um enthaltene Ausgleiche (Nr. 2; nur 2005)", "", "", ""
},
{
"10", "+/- neue Basisberichtigungen, ohne Ausgleichsanteil (Abs. 3 Satz 1 Halbsatz 1", "", "", ""
},
{
"11", "=Ausgangswert des Vorjahres", "", "", ""
},
{
"12", "+/- voraussichtl. Leistungsveränderungen (Abs. 4 Satz 1 bis 4", "", "", ""
},
{
"13", "+ BAT-Ost-West-Angleichung (Abs. 4 Satz 1 Nr. 2)", "", "", ""
},
{
"14", "+/- Veränderungsrate nach § 71 SGB V (Abs. 4 Satz 1 Nr. 3", "", "", ""
},
{
"15", "= veränderter Ausgangswert nach Absatz 4", "", "", ""
},
{
"", "", "", "", ""
},
{
"16", "DRG-Erlösvolumen nach Absatz 5 Satz 1", "", "", ""
},
{
"17", "./. Abschläge nach § 17b Abs. 1 Satz 4 KHG (Abs. 5 Satz 2)", "", "", ""
},
{
"18", "Zielwert: DRG-Erlösvolumen (Abs. 5)", "", "", ""
},
{
"", "", "", "", ""
},
{
"", "Ermittlung des Angleichungsbetragen", "", "", ""
},
{
"19", "Zielwert aus lfd. Nr. 18", "", "", ""
},
{
"20", "./. Veränderter Ausgangswert aus lfd. Nr. 15", "", "", ""
},
{
"21", "= Zwischenergebnis", "", "", ""
},
{
"22", "23,5% von lf. Nr. 21 (Abs. 6 Satz 1) oder Obergrenze", "", "", ""
},
{
"23", "=Angleichungsbetrag (Abs. 6 Satz 1)", "", "", ""
},
{
"", "", "", "", ""
},
{
"", "Ermittlung des Erlösbudgets:", "", "", ""
},
{
"24", "veränderter Ausgangswert aus lfd. Nr. 15", "", "", ""
},
{
"25", "+/- Angleichungsbetrag aus lfd. Nr. 23", "", "", ""
},
{
"26", "=Erlösbudget (Abs. 6 Satz 2)", "", "", ""
},
{
"", "", "", "", ""
},
{
"", "Ermittlung des Basisfallwertes (Abs. 7):", "", "", ""
},
{
"27", "Erlösbudget aus lfd. Nr. 26", "", "", ""
},
{
"28", "./. Erlöse aus Zusatzentgelten", "", "", ""
},
{
"29", "./. Erlöse für Überlieger am Jahresbeginn", "", "kein Wert in By", ""
},
{
"30", "+/- neue Ausgleiche für Vorjahre *)", "", "", ""
},
{
"31", "=verändertes Erlösbudget (Abs. 7 Satz 1) **)", "", "", ""
},
{
"32", ": Summe der effektiven Bewertungsrelationen (Anlage E1, Jahresfälle)", "", "", ""
},
{
"33", "krankenhausindividueller Basisfallwert", "", "", ""
},
{
"34", "nachrichtlich: Basisfallwert ohne Ausgleiche und Berichtigungen", "", "", ""
}
};
final TD1Model tbl = new TD1Model(data, B2_Label);
final JTable table = new JTable(tbl)
{
public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
{
Component c = super.prepareRenderer(renderer, row, column);
/*farbe1 ist ein helleres grün*/
/*farbe2 ist ein helleres rot*/
/*farbe3 ist ein helleres blau*/
farbe1 = new Color(200,255,200);
farbe2 = new Color(255,200,200);
farbe3 = new Color(200,200,255);
if (!isRowSelected(row))
{
c.setBackground(Color.white);
if(column==3 && row != 0 && row != 1 && row != 2 && row !=10 && row != 12 && row != 13 && row !=15 && row !=16 && row != 17 && row != 18 && row != 19 && row != 21 && row != 22 && row !=23 && row != 24 && row != 25 && row != 26 && row != 27 && row != 28 && row != 29 && row !=30 && row != 31 && row != 32 && row != 33 && row != 34 && row != 35 && row != 36 && row != 37 && row != 38 && row != 39 && row != 40 && row != 41 && row != 42 && row != 43)
{
c.setBackground(farbe1);
}
else if(column==3 && row != 0 && row !=1 && row != 2 && row != 15 && row != 18 && row != 22 && row != 23 && row != 29 && row != 30 && row != 34 && row != 35 && row != 38)
{
c.setBackground(farbe3);
}
if(column==4 && row != 0 && row !=1 && row !=2 && row !=3 && row != 12 && row != 13 && row !=15 && row !=16 && row != 17 && row != 18 && row != 19 && row != 21 && row != 22 && row !=23 && row != 24 && row != 25 && row != 26 && row != 27 && row != 28 && row != 29 && row !=30 && row != 31 && row != 32 && row != 33 && row != 34 && row != 35 && row != 36 && row != 38 && row != 39 && row != 40 && row != 42 && row != 43)
{
c.setBackground(farbe1);
}
else if(column==4 && row != 0 && row !=1 && row != 2 && row != 10 && row != 15 && row != 18 && row != 22 && row != 23 && row != 29 && row != 30 && row != 34 && row != 35 && row != 38 && row!= 41)
{
c.setBackground(farbe3);
}
}
return c;
}
};
//table.setShowHorizontalLines(false);
//table.setShowVerticalLines(false);
/*JScrollPane hinzufügen zum Scrollen*/
JScrollPane sp = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
/*Den sichtbaren Bereich der Tabelle definieren*/
table.setPreferredScrollableViewportSize(new Dimension( 500, 100 ) );
sp.setBounds(10,20,100,20);
hilfspanel5.add(sp);
/*spalten nicht resizable machen, nicht zulassen dass die spaltenreihenfolge geändert werden kann*/
JTableHeader header = table.getTableHeader();
header.setResizingAllowed(false);
header.setReorderingAllowed(false);
JComponent component = null;
// Diese Zeilen sind für das Selektieren einer ganzen Spalte
//table.setColumnSelectionAllowed(true);
//table.setRowSelectionAllowed(false);
/*Breite der Column beeinflussen*/
table.getColumnModel().getColumn(0).setMinWidth(75);
table.getColumnModel().getColumn(1).setMinWidth(75);
table.getColumnModel().getColumn(2).setMinWidth(75);
table.getColumnModel().getColumn(3).setMinWidth(100);
//Hinzufügen eines MouseListener an den TableHeader für ganze Spalte markieren
/*table.getTableHeader().addMouseListener(new MouseListener()
{
public void mouseClicked(MouseEvent e)
{
//Abfragen, ob die "geklickte" Spalte bereits selektiert ist...
if( table.getSelectedColumn() == table.columnAtPoint(e.getPoint()))
{
//...falls ja, dann deselektieren...
table.removeColumnSelectionInterval(0, table.getColumnCount() - 1);
}
else
//...falls nein, dann selektieren
table.setColumnSelectionInterval(table.columnAtPoint(e.getPoint()), table.columnAtPoint(e.getPoint()));
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
});*/
inhalt = new JButton("< Inhalt");
vereinbarung_erzeugen = new JButton("Vereinbarung erzeugen");
hilfspanel4.add(inhalt);
hilfspanel4.add(vereinbarung_erzeugen);
hilfspanel6.add(hilfspanel4, BorderLayout.CENTER);
hilfspanel5.add(hilfspanel6);
fussnote1 = new JLabel("*) Bei Berichtigung ist hier nur der Ausgleich, nicht die Basisberichtigung auszuweisen. Die Ausgleiche und Berichtigungen sind auf einem gesonderten Blatt einzeln auszuweisen");
fussnote2 = new JLabel("**) Erlösbudget einschließlich der Erlöse bei Überschreitung der oberen Grenzverweildauer, der Abschläge bei Unterschreitung der unteren Grenzverweildauer und der Abschläge bei Verlegungen.");
hilfspanel2.add(überschrift, BorderLayout.NORTH);
hilfspanel2.add(sp, BorderLayout.WEST );
hilfspanel2.add(hilfspanel5);
hilfspanel3.add(fussnote1);
hilfspanel3.add(fussnote2);
hilfspanel2.add(hilfspanel3, BorderLayout.SOUTH);
// ***** Ende CENTERPANEL******
// ***** SÜDPANEL******
fusszeile_links = new JLabel("Datei: AEB-Programm 2007.0");
fusszeile_mitte = new JLabel(" B2");
fusszeile_rechts = new JLabel("Seite X von Seite y");
südPanel.add(fusszeile_links, BorderLayout.WEST);
südPanel.add(fusszeile_mitte, BorderLayout.CENTER);
südPanel.add(fusszeile_rechts, BorderLayout.EAST);
centerPanel.add(hilfspanel2, BorderLayout.CENTER);
con1.add(nordPanel, BorderLayout.NORTH);
con1.add(centerPanel, BorderLayout.CENTER);
con1.add(südPanel, BorderLayout.SOUTH);
inhalt.addActionListener(new inhaltListener());
}
}
class TD1Model extends DefaultTableModel
{
public TD1Model(Object[][] data, String[] labels)
{
super( data, ( Object[] ) labels );
}
/*isCellEditable ist für die Editierbarkeit zuständig*/
public boolean isCellEditable(int row, int column)
{
if (column == 0)
{
return false;
}
else if (column == 1)
{
return false;
}
else if( column == 2)
{
return false;
}
else if (column == 3)
{
if (row == 0)
{
return false;
}
else if (row == 1)
{
return false;
}
else if (row == 2)
{
return false;
}
else if (row == 10)
{
return false;
}
else if (row == 12)
{
return false;
}
else if (row == 13)
{
return false;
}
else if (row == 15)
{
return false;
}
else if (row == 16)
{
return false;
}
else if (row == 17)
{
return false;
}
else if (row == 18)
{
return false;
}
else if (row == 19)
{
return false;
}
else if (row == 21)
{
return false;
}
else if (row == 22)
{
return false;
}
else if (row == 23)
{
return false;
}
else if (row == 24)
{
return false;
}
else if (row == 25)
{
return false;
}
else if (row == 26)
{
return false;
}
else if (row == 27)
{
return false;
}
else if (row == 28)
{
return false;
}
else if (row == 29)
{
return false;
}
else if (row == 30)
{
return false;
}
else if (row == 31)
{
return false;
}
else if (row == 32)
{
return false;
}
else if (row == 33)
{
return false;
}
else if (row == 34)
{
return false;
}
else if (row == 35)
{
return false;
}
else if (row == 36)
{
return false;
}
else if (row == 37)
{
return false;
}
else if (row == 38)
{
return false;
}
else if (row == 39)
{
return false;
}
else if (row == 40)
{
return false;
}
else if (row == 41)
{
return false;
}
else if (row == 42)
{
return false;
}
else if (row == 43)
{
return false;
}
else
{
return true;
}
}
else if (column == 4)
{
if (row == 0)
{
return false;
}
else if (row == 1)
{
return false;
}
else if (row == 2)
{
return false;
}
else if (row == 3)
{
return false;
}
else if (row == 12)
{
return false;
}
else if (row == 13)
{
return false;
}
else if (row == 15)
{
return false;
}
else if (row == 16)
{
return false;
}
else if (row == 17)
{
return false;
}
else if (row == 18)
{
return false;
}
else if (row == 19)
{
return false;
}
else if (row == 21)
{
return false;
}
else if (row == 22)
{
return false;
}
else if (row == 23)
{
return false;
}
else if (row == 24)
{
return false;
}
else if (row == 25)
{
return false;
}
else if (row == 26)
{
return false;
}
else if (row == 27)
{
return false;
}
else if (row == 28)
{
return false;
}
else if (row == 29)
{
return false;
}
else if (row == 30)
{
return false;
}
else if (row == 31)
{
return false;
}
else if (row == 32)
{
return false;
}
else if (row == 33)
{
return false;
}
else if (row == 34)
{
return false;
}
else if (row == 35)
{
return false;
}
else if (row == 36)
{
return false;
}
else if (row == 38)
{
return false;
}
else if (row == 39)
{
return false;
}
else if (row == 40)
{
return false;
}
else if (row == 42)
{
return false;
}
else if (row == 43)
{
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
}