![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Hallo, ich habe mir ein kleines Programm erstellt. Die Gui baut auf JFrames.... auf. Nun stellt sich mir die Frage, warum komponenten die ich später als das eigentliche Frame auf der Oberfläche erscheinen lasse (durch eine Methode) nicht angezeigt werden. Minimiere ich das fentser aber und mache es wieder groß sind alle Komponenten da:confused: :confused: :confused: Habe leider keine Erklärung dafür- aber ihr bestimmt. |
|
| | Nach oben #3 |
| Gast
Beiträge: n/a
|
Mhhh blöd. habs versucht. Ist aber immer noch etwas unwillig. Liegt das an meinem (zugegeben nicht sehr professionellen) code? Code:
class Ausgabefenster
{
main() { Frame f, darauf ein Label l(als Hintergrund), darauf Button. wenn Button gedrückt wird sollen mehrere Textfelder erscheinen.}
.........
private Textfelderfunktion() { Hier sind die Textfelder drin und werden schon auf l.add(textfeld) gesetzt.}
......
listener(){handelt wenn Button gedrückt wird und ruft Textfelderfunktion() auf}
}
|
|
| | Nach oben #6 |
| Gast
Beiträge: n/a
|
ok, dann mal den code (nicht erschrecken, ist viel und unübersichtich!) Aber mir ist noch was viel schlimmeres aufgefallen. wenn ich die db-abfrage das zweite mal mache wird in der tabell alles korrekt angezeigt. ändere ich dann jedoch die spaltenbreite manuel mit der maus erscheinen wieder die daten der ersten abfrage in der tabelle!?! hat das auch mit dem validate() usw. zu tun??? Danke im Voraus schonmal Meine GUI [code] import java.awt.*; import java.awt.event.*; import java.util.Vector; import javax.swing.*; import javax.swing.table.DefaultTableModel; /** * Die Klasse AusgabefensterGui entwirft eine GUI um die Abfrage für den * Benutzer so angenehm wie möglich zu machen. * @author eczernot * */ public class AusgabefensterGui extends JFrame implements ActionListener, ItemListener{ private static final long serialVersionUID = 1L; /** * Variablen anderes Klassen */ Datenbank datenBank; Ausgabefenster ausgabeFenster; LoginGui lg; Login login; Balkendiagramm balken; /** * normale Variablen */ String user; String einoderaus; String datumAnfang; String datumEnde; String kat; String wdh; String[] kombi; /** * Variablen für die Oberflächengestaltung */ private JTextField t, neuBeschr, neuBtrag, neuDatum; private final Container c1; private final Container c2; private final Container c3; private final JFrame fr; /** * Constructor * @param ausgabeFenster */ public AusgabefensterGui(Ausgabefenster ausgabeFenster) { this.ausgabeFenster = ausgabeFenster; fr = new JFrame("Ausgabefenster"); fr.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOS E); fr.setResizable(false); fr.setSize(800,600); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); fr.setLocation((d.width- fr.getSize().width ) / 2, (d.height- fr.getSize().height) / 2 ); // --------------------------------------------------------------------- // c1: Linke Frameseite mit Abfragekriterien: c1=fr.getContentPane(); c1.setLayout(null); c1.setSize(300,600); c1.setLocation(0,0); // Hintergrund einbinden ImageIcon hintergrund1 = new ImageIcon("bilder/1.jpg"); JLabel hlabel1 = new JLabel(hintergrund1); hlabel1.setSize(300, 600); hlabel1.setLocation(0,0); c1.add(hlabel1); // c2: Rechts oben: Platz für Grafik der ausgelesenen Daten: c2 =fr.getContentPane(); c2.setLayout(null); c2.setSize(500,300); c2.setLocation(300,0); // Hintergrund für c2: ImageIcon hintergrund2 = new ImageIcon("bilder/2.jpg"); JLabel hlabel2 = new JLabel(hintergrund2); hlabel2.setSize(500, 300); hlabel2.setLocation(300,0); c2.add(hlabel2); // c3: Rechts unten:Tabelle um abgefragte Daten darzustellen c3 =fr.getContentPane(); c3.setLayout(null); c3.setSize(500,300); c3.setLocation(300,300); // --------------------------------------------------------------------- // Label auf Hintergrund auf Frame JLabel katlabel = new JLabel(); katlabel.setSize(275, 50); katlabel.setLocation(25,10); katlabel.setText("Bitte Kategorie auswählen..."); hlabel1.add(katlabel); // Startbutton um Abfrage auf DB zu starten JButton b1 = new JButton("Abfragen"); b1.setSize(100,50); b1.setLocation(25,170); b1.setBackground(Color.WHITE); hlabel1.add(b1); b1.addActionListener(this); ); fr.setVisible(true); } ........versch. get und setMethoden public void diagrammDatenAufbereitung() { datenBank = new Datenbank(); datenBank.diagrammDaten(); JLabel labelbd = new JLabel(); balken = new Balkendiagramm(); labelbd = balken.create(kombi); c2.add(labelbd); }; public void tabellenDatenAufbereitung() { kat = getkat(); einoderaus = einoderaus(); //user = benutzerAngemeldet(); //System.out.println("KAtegorie aus der Klasse:" + user); Vector vec = new Vector(); vec = datenBank.ausgabefunktion(kat, einoderaus); System.out.println("Wieder in der GUI"); Vector columnNames = new Vector(); columnNames.addElement("Nummer"); columnNames.addElement("Kategorie"); columnNames.addElement("Beschreibung"); columnNames.addElement("Betrag"); columnNames.addElement("Periode"); columnNames.addElement("Datum"); DefaultTableModel tabMod = new DefaultTableModel(vec,columnNames); JTable table = new JTable(tabMod); table.getTableHeader().setReorderingAllowed(false) ; table.enable(false); JScrollPane scrollPane = new JScrollPane(table); scrollPane.setSize(495,277); scrollPane.setLocation(300,300); c3.add( scrollPane ); } public void loeschen() { ImageIcon hintergrund1 = new ImageIcon("bilder/1.jpg"); JLabel hlabel1 = new JLabel(hintergrund1); hlabel1.setSize(300, 600); hlabel1.setLocation(0,0); c1.add(hlabel1); // ------------------------------------------------------------------------------ JRadioButton rb1 = new JRadioButton("Einzahlung"); rb1.setSize(113,25); rb1.setLocation(25,320); rb1.setBackground(Color.WHITE); rb1.addActionListener(this); hlabel1.add(rb1); JRadioButton rb2 = new JRadioButton("Ausgabe"); rb2.setSize(114,25); rb2.setLocation(139,320); rb2.setBackground(Color.WHITE); rb2.addActionListener(this); hlabel1.add(rb2); ButtonGroup group = new ButtonGroup(); group.add(rb1); group.add(rb2); // Dropdown-Auswahl für neue Kategorie // Kategorien zum auswählen String lang[] = {"...", "Lebensmittel", "KFZ", "Wohnen", "Bildung", "Freizeit","Haushaltswaren", "Kleidung", "Verdienst"}; JComboBox katselNew = new JComboBox(); katselNew.setSize(227,25); katselNew.setLocation(25,420); katselNew.setBackground(Color.WHITE); hlabel1.add(katselNew); // Checkbox mit Kategorien füllen for ( int i = 0; i < lang.length; i++ ) katselNew.addItem( lang[i] ); katselNew.addItemListener(this); // ------------------------------------------------------------------------------ // Button um Eintrag zu löschen JButton b4 = new JButton("Löschen"); b4.setSize(100,50); b4.setLocation(25,450); b4.setBackground(Color.WHITE); hlabel1.add(b4); b4.addActionListener(this); fr.setVisible(); } .....Klasse geht im nächsten Post weiter..... |
|
| | Nach oben #7 |
| Gast
Beiträge: n/a
| Code: // --------------------------------------------------------------
// -------------------LISTENER-----------------------------------------
// ---------------------------------------------------------------------
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Abfragen"))
{
loeschen();
ausgabeFenster.query();
} ;
if(e.getActionCommand().equals("Updaten"))
{
int entryID;
entryID = getEntry_ID();
System.out.println("Aus Listener updaten:"+ entryID);
String neuB = getNeuBeschr();
String neuKat = getkat();
double neuBetrag = getNeuBetrag();
String neuDatum = getNeuDatum();
String neuEinoderAus = einoderaus();
datenBank.setUpdate(neuB,
entryID,
neuKat,
neuBetrag,
neuDatum,
neuEinoderAus);
if(datenBank.setUpdate(neuB, entryID, neuKat, neuBetrag, neuDatum, neuEinoderAus)==true)
{
ausgabeFenster.query();
loeschen();
}
else JOptionPane.showMessageDialog(null, "Updatevorgang fehlgeschlagen!");
};}
public void itemStateChanged( ItemEvent e )
{
JComboBox selectedChoice = (JComboBox)e.getSource();
if(e.getStateChange() == ItemEvent.SELECTED)
{
kat = (String)selectedChoice.getSelectedItem();
}
}
}
Code:
public class Ausgabefenster {
private static final long serialVersionUID = 1L;
AusgabefensterGui ausgabefensterGui;
Datenbank datenBank;
String datumAnfang;
String datumEnde;
String kat;
String einoderaus;
String wdh;
String[] kombi;
/**
* Constructor
* @param datenBank
*/
public Ausgabefenster(Datenbank datenBank)
{
this.datenBank = datenBank;
ausgabefensterGui = new AusgabefensterGui(this);
}
/**
* query() steuert die Darstellung der DB-Abfrage. Hier werden alle
* Funktionen gebündelt die die Daten der DB-Abfrage zur Ausgabe
* aufbereiten.
* Von Hier werden dann alle diese Funktionen aufgerufen.
*
*/
public void query()
{
ausgabefensterGui.diagrammDatenAufbereitung();
ausgabefensterGui.tabellenDatenAufbereitung();
}
}
Code:
import javax.swing.*;
import java.awt.*;
public class Balkendiagramm
{
String[] kombi;
Datenbank datenBank;
AusgabefensterGui ausgabefensterGui;
Ausgabefenster ausgabeFenster;
/**
* Constructor
* @param kombi
* @return labeldb
*/
public JLabel create(String[] kombi)
{
datenBank = new Datenbank();
datenBank.diagrammDaten();
kombi = datenBank.diagrammDaten();
JLabel labelbd = new JLabel();
labelbd.setSize(500, 300);
labelbd.setLocation(300,0);
double gesamtWert = 0;
double einnahmenGes=0;
double ausgabenGes=0;
String[] kategorie = new String[8];
double[] betraege = new double[8];
//Durch folgende for-Schleife wird der ÜbergabeString in Beträge und Kategorien geteilt
for (int i=0; i<kombi.length; i++)
{
kategorie[i]= kombi[i].substring(0,1);
betraege[i]= Double.parseDouble(kombi[i].substring(1,kombi[i].length()));
gesamtWert = gesamtWert + betraege[i];
}
// Testausgabe der for-Schleife
for(int i= 0; i<kategorie.length; i++)
{
System.out.println("Kategorien: "+ kategorie[i]);
System.out.println("Beträge: "+ betraege[i]);
}
double tf1size=0;
.......von tf1size bis tf9size........
double tf9size=0;
/*
*Die Balkenlänge ergibt sich aus dem Verhältnis von gesamtBetrag und dem Betrag
*der jeweiligen Kategorie
*/
System.out.println("Gesamtwert:" + gesamtWert);
if (gesamtWert > 1000)
{
for(int i=0; i<kategorie.length; i++)
{
if (kategorie[i].equals("L")){tf1size = (betraege[i]/gesamtWert)*100.0;};
if (kategorie[i].equals("K")){tf2size = (betraege[i]/gesamtWert)*100.0;};
if (kategorie[i].equals("W")){tf3size = (betraege[i]/gesamtWert)*100.0;};
if (kategorie[i].equals("B")){tf4size = (betraege[i]/gesamtWert)*100.0;};
if (kategorie[i].equals("F")){tf5size = (betraege[i]/gesamtWert)*100.0;};
if (kategorie[i].equals("H")){tf6size = (betraege[i]/gesamtWert)*100.0;};
if (kategorie[i].equals("A")){tf7size = (betraege[i]/gesamtWert)*100.0;};
if (kategorie[i].equals("V")){tf8size = (betraege[i]/gesamtWert)*100.0;};
}
tf9size = (gesamtWert/gesamtWert)*100.0;
}
else {
for(int i=0; i<kategorie.length; i++)
{
if (kategorie[i].equals("L")){tf1size = (betraege[i]/gesamtWert);};
if (kategorie[i].equals("K")){tf2size = (betraege[i]/gesamtWert);};
if (kategorie[i].equals("W")){tf3size = (betraege[i]/gesamtWert);};
if (kategorie[i].equals("B")){tf4size = (betraege[i]/gesamtWert);};
if (kategorie[i].equals("F")){tf5size = (betraege[i]/gesamtWert);};
if (kategorie[i].equals("H")){tf6size = (betraege[i]/gesamtWert);};
if (kategorie[i].equals("A")){tf7size = (betraege[i]/gesamtWert);};
if (kategorie[i].equals("V")){tf8size = (betraege[i]/gesamtWert);};
}
tf9size = (gesamtWert/gesamtWert);
}
for(int j=0; j<betraege.length; j++)
{
if(betraege[j]<=0)
{
ausgabenGes= ausgabenGes + betraege[j];
}
else
{
einnahmenGes = einnahmenGes + betraege[j];
}
}
System.out.println(einnahmenGes);
System.out.println(ausgabenGes);
//----------------------------------------------------------------------
//----------------------DIAGRAMM--------------------------------------
//----------------------------------------------------------------------
//Hierwerden die Balken des Diagramms berechnet
//---------------------------------------------------------------------------------
//Feld für Lebensmittel
if((tf1size > 0 && tf1size < 100) || (tf1size < 0 && tf1size > (-100)))
{
JTextField tf1a = new JTextField("Lebensmittel");
tf1a.setEnabled(false);
tf1a.setDisabledTextColor(Color.BLACK);
tf1a.setSize(100,20);
tf1a.setLocation(350,60);
labelbd.add(tf1a);
if(tf1size>0 && tf1size<100.0)
{
JTextField tf1b = new JTextField(" ");
tf1b.setEnabled(false);
tf1b.setDisabledTextColor(Color.BLACK);
tf1b.setSize( (int)tf1size,20);
tf1b.setLocation(250,60);
tf1b.setBackground(Color.GRAY);
labelbd.add(tf1b);
}
else if(tf1size < 0 && tf1size > (-100))
{
JTextField tf1b = new JTextField(" ");
tf1b.setEnabled(false);
tf1b.setDisabledTextColor(Color.BLACK);
tf1b.setSize( ( (int)tf1size * ( -1 ) ), 20);
tf1b.setLocation( (250 - ( (int)tf1size) * ( -1 ) ), 60);
tf1b.setBackground(Color.GRAY);
labelbd.add(tf1b);
}
}
else if (tf1size < (-100))
{
JTextField tf1 = new JTextField("Lebensmittel");
tf1.setEnabled(false);
tf1.setDisabledTextColor(Color.BLACK);
tf1.setSize( ( ( (int)tf1size) * ( -1 ) ), 20);
tf1.setLocation( ( 250 - ( (int)tf1size * ( -1 ) ) ), 60);
tf1.setBackground(Color.GRAY);
labelbd.add(tf1);
}
else {
JTextField tf1 = new JTextField("Lebensmittel");
tf1.setEnabled(false);
tf1.setDisabledTextColor(Color.BLACK);
tf1.setSize( (int)tf1size,20);
tf1.setLocation(250,60);
tf1.setBackground(Color.GRAY);
labelbd.add(tf1);
}
return labelbd;
}
......das gleiche nochmals für 8 felder.....
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Componente wird nicht angezeigt | Prophet | Desktop-Applikationen und Grafik | 4 | 25.07.2006 12:24 |
| [XAMPP] Ordner wird nicht angezeigt | Ben | Tools, Server, Betriebssysteme | 7 | 16.05.2006 13:24 |
| Tabellenzellen aktualisieren sich intern, Änderung wird aber nicht angezeigt | Ben | Desktop-Applikationen und Grafik | 6 | 14.03.2006 07:45 |
| applet wird nicht angezeigt | function | Desktop-Applikationen und Grafik | 4 | 31.10.2005 12:48 |
| Icons in Applet werden nicht angezeigt.. | peddn | Desktop-Applikationen und Grafik | 2 | 02.07.2005 05:41 |