1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. Nicholas1991

Beiträge von Nicholas1991

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 10. April 2010 um 17:55

    Ich hab das hier mal etwas anders gemacht, weil ich es unnötig fand eine Methode nur für den Super-Aufruf zu haben:

    PHP
    import javax.swing.event.DocumentListener;
    import javax.swing.event.DocumentEvent;
    import javax.swing.JTextField;
    import java.awt.Color;
    import java.awt.event.FocusListener;
    import java.awt.event.FocusEvent;
     
    public class ChatTextField extends JTextField implements DocumentListener, FocusListener {
        private boolean textEingegeben = false;
        private Color hasFocusForeground;
        private String platzhalter = "Eingabe";
        private Color platzhalterFarbe = Color.GRAY;
    
        public ChatTextField() {
            super();
            hasFocusForeground = getForeground();
            super.setForeground(platzhalterFarbe);
            super.setText(platzhalter);
            addFocusListener(this);
        }
    
        public ChatTextField(String platzhalter, Color platzhalterFarbe) {
            super();
            this.platzhalter = platzhalter;
            this.platzhalterFarbe = platzhalterFarbe;
            hasFocusForeground = getForeground();
            super.setForeground(platzhalterFarbe);
            super.setText(platzhalter);
            addFocusListener(this);
        }
    
        public void changedUpdate(DocumentEvent e) {
            textEingegeben = true;
        }
    
        public void insertUpdate(DocumentEvent e) {
            textEingegeben = true;
        }
    
        public void removeUpdate(DocumentEvent e) {
            if(getText().length()!=0) {
                textEingegeben = true;
            } else {
                textEingegeben = false;
            }
        }
    
        public void focusGained(FocusEvent e) {
            if(textEingegeben==false) {
                super.setText("");
            }
            super.setForeground(hasFocusForeground);
            getDocument().addDocumentListener(this);
        }
    
        public void focusLost(FocusEvent e) {
            getDocument().removeDocumentListener(this);
            if(!textEingegeben) {
                super.setForeground(platzhalterFarbe);
                super.setText(platzhalter);
            }
        }
        public void setPlatzhalter(String platzhalter) {
            this.platzhalter = platzhalter;
            if(!textEingegeben && !this.hasFocus()) {
                super.setText(platzhalter);
            }
        }
    
        public void setPlatzhalterFarbe(Color platzhalterFarbe) {
            this.platzhalterFarbe = platzhalterFarbe;
            if(!textEingegeben && !this.hasFocus()) {
                super.setForeground(platzhalterFarbe);
            }
        }
    
        public void setText(String text) {
            super.setText(text);
            if(text.equals("")) {
                textEingegeben = false;
                if(!hasFocus()) {
                    super.setText(platzhalter);
                    super.setForeground(platzhalterFarbe);
                }
            } else {
                textEingegeben = true;
                super.setForeground(hasFocusForeground);
            }
        }
    
        public void setForeground(Color foreground) {
            hasFocusForeground = foreground;
            if(hasFocus()) {
                super.setForeground(foreground);
            }
        }
    
        public String getText() {
            if(textEingegeben) {
                return super.getText();
            } else {
                return "";
            }
        }
    }
    Alles anzeigen
  • JFrame wird Schwarz bei vielen JProgressbar-Value-Veränderungen unter Windows 7 64bit

    • Nicholas1991
    • 10. April 2010 um 02:30

    Hmm, weder mit noch ohne reproduzierbar, der Fehler kommt leider nur manchmal... hab das jetzt total oft probiert. kA wie ich den nochmal hinbekommen soll :thinking_face: Auf jeden Fall kein einziges mal mit deiner Zeile da.

  • JFrame wird Schwarz bei vielen JProgressbar-Value-Veränderungen unter Windows 7 64bit

    • Nicholas1991
    • 9. April 2010 um 19:57

    Also das reduzieren hat auf jeden Fall jetzt das Problem behoben. Wüsste trotzdem gerne, warum der JFrame, der ja gar nicht neu gezeichnet werden sollte schwarz wurde.

  • JFrame wird Schwarz bei vielen JProgressbar-Value-Veränderungen unter Windows 7 64bit

    • Nicholas1991
    • 9. April 2010 um 16:45

    60 Dateien, 13MB bei ner "normalen" SATA Festplatte. Alle 512bytes wird geupdated.

  • JFrame wird Schwarz bei vielen JProgressbar-Value-Veränderungen unter Windows 7 64bit

    • Nicholas1991
    • 9. April 2010 um 16:36

    Hallo Leute

    ich hab ein Programm, dass den Fortschritt eines Downloads anzeigt. Einmal eine Pogressbar für den Fortschritt der einzelnen Datei und einmal eine Progressbar für den Gesamtforschritt.
    Wenn ich jetzt das ganze über Internet laufen lasse sieht alles sehr schick aus :D.
    Wenn ich jetzt aber zu Testzwecken das ganze über 0.0.0.0 auf meinem eigenen Rechner laufen lasse, dann passiert es manchmal, dass bei den ganz kleinen Dateien mein JFrame schwarz wird und nur die JProgressbar in der sich was tut wieder gezeichnet wird?!

    Ist das ein bekanntes Problem oder liegt das aller Wahrscheinlichkeit nach bei meiner Anwendung?

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 9. April 2010 um 15:24

    Hmm, das hatte ich mir auch überlegt. Aber ich fand es irgendwie unsauber, dass ein beliebiger Text der als Platzhalter definiert wurde nicht mehr gesendet werden darf.
    Ich hab mal folgendes gebastelt (wäre für Ideen zur Vereinfachung oder andere Verbesserungsvorschläge sehr dankbar):

    PHP
    import javax.swing.event.DocumentListener;
    import javax.swing.event.DocumentEvent;
    import javax.swing.JTextField;
    import java.awt.Color;
    import java.awt.event.FocusAdapter;
    import java.awt.event.FocusEvent;
     
    public class ChatTextField extends JTextField {
        private boolean textEingegeben = false;
        private Color foregroundTMP;
        private DocumentListener myDL;
        private String platzhalter = "Eingabe";
        private Color platzhalterFarbe = Color.GRAY;
    
        public ChatTextField() {
            super();
            foregroundTMP = getForeground();
            setForeground(platzhalterFarbe);
            super.setText(platzhalter);
            addListeners();
        }
    
        public ChatTextField(String platzhalter, Color platzhalterFarbe) {
            super();
            this.platzhalter = platzhalter;
            this.platzhalterFarbe = platzhalterFarbe;
            foregroundTMP = getForeground();
            setForeground(platzhalterFarbe);
            super.setText(platzhalter);
            addListeners();
        }
    
        private void addListeners() {
            myDL = new DocumentListener() {
                public void changedUpdate(DocumentEvent e) {
                    textEingegeben = true;
                }
                public void insertUpdate(DocumentEvent e) {
                    textEingegeben = true;
                }
                public void removeUpdate(DocumentEvent e) {
                    if(getText().length()!=0) {
                        textEingegeben = true;
                    } else {
                        textEingegeben = false;
                    }
                }
            };
            addFocusListener(new FocusAdapter() {
                public void focusGained(FocusEvent e) {
                    if(textEingegeben==false) {
                        setSuperText("");
                    }
                    setForeground(foregroundTMP);
                    getDocument().addDocumentListener(myDL);
                }
                public void focusLost(FocusEvent e) {
                    getDocument().removeDocumentListener(myDL);
                    if(!textEingegeben) {
                        setForeground(platzhalterFarbe);
                        setSuperText(platzhalter);
                    }
                }
            });
        }
    
        private void setSuperText(String text) {
            super.setText(text);
        }
    
        public void setPlatzhalter(String platzhalter) {
            this.platzhalter = platzhalter;
            if(!textEingegeben && !this.hasFocus()) {
                super.setText(platzhalter);
            }
        }
    
        public void setPlatzhalterFarbe(Color platzhalterFarbe) {
            this.platzhalterFarbe = platzhalterFarbe;
            if(!textEingegeben && !this.hasFocus()) {
                setForeground(platzhalterFarbe);
            }
        }
    
        public void setText(String text) {
            super.setText(text);
            if(text.equals("")) {
                textEingegeben = false;
                if(!hasFocus()) {
                    super.setText(platzhalter);
                    setForeground(platzhalterFarbe);
                }
            } else {
                textEingegeben = true;
                setForeground(foregroundTMP);
            }
        }
    
        public String getText() {
            if(textEingegeben) {
                return super.getText();
            } else {
                return "";
            }
        }
    }
    Alles anzeigen
  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 9. April 2010 um 13:51

    Aber wenn ich das TextField einfach leere wenn das den Focus bekommt könnte es ja passieren, dass eigentlich schon was eingetragen war und der Benutzer die Eingabe nur unterbrochen hat.

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 8. April 2010 um 13:00

    Jop so hab ich das auch schon gemacht, dachte nur ich könnte meinen Code aufräumen damit. Denn wenn jemand den dazugehörigen Button benutzt muss ich immer überprüfen was für ein Text darin steht. Wenn jetzt der "Hintergrundtext" darin steht soll er das nicht abschicken. Das ist natürlich etwas unsauber, da es ja jemanden geben könnte der diesen Text da verschicken will (unwahrscheinlich ich weiß :grinning_face_with_smiling_eyes: aber ich hasse unsaubere Lösungen).
    Ob ich da was in der PaintComponent-Methode machen kann?

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 7. April 2010 um 23:01

    Hallo Leute

    in meinem Programm hab ich ein JTextField, in dem ich gerne Text anzeigen lassen würde wenn der "eigentliche Text" leer ist (also "") und der dann natürlich verschwindet, wenn das JTextField den Focus bekommt. Hab dafür aber irgendwie keine Methode gefunden. Muss ich das selber programmieren, oder gibt es dafür eine nette vorgefertigte Methode. Hab schon nach gegoogelt aber irgendwie fehlen mir da die richtigen Schlagwörter. Wenn ich nach "JTextField Background Text" suche spuckt die Suchmaschine nichts brauchbares aus.

    Danke für jeden Tipp wo ich suche könnte, oder einen kleinen Verweis auf die entsprechende Stelle in den JavaDocs :grinning_squinting_face:

  • Seltsames Partitionsverhalten - Nicht existente Partition

    • Nicholas1991
    • 5. Januar 2010 um 20:48

    Ok, interessanterweise taucht diese Partition nur auf, wenn ich die Platte als Dynamisches Laufwerk oder so formatiere, wenn ich das als Basis Laufwerk formatiere verschwindet das komische Volume und ich kann dann normal meine Partitionen anlegen. Hab deshalb jetzt Basis gewählt und alles läuft. Danke an alle die geholfen haben

  • Seltsames Partitionsverhalten - Nicht existente Partition

    • Nicholas1991
    • 5. Januar 2010 um 16:03

    wie kann ich denn mit TestDisk Partitionen löschen? Mehr als analysieren und anzeigen find ich bei dem Programm nicht?
    Er findet zumindest die Partition.

    Code
    PhotoRec 6.11.3, Data Recovery Utility, May 2009
    Christophe GRENIER <[EMAIL='grenier@cgsecurity.org']grenier@cgsecurity.org[/EMAIL]>
    [URL]http://www.cgsecurity.org[/URL]
    Disk /dev/sda - 2000 GB / 1863 GiB (RO) - Hitachi HDS722020ALA330
         Partition                  Start        End    Size in sectors
         No partition             0   0  1 3876020  15 63 3907029168 [Whole disk]
     1 P W2K Dynamic/SFS          0   1  1 3876020  15 63 3907029105
     
     
     
     
     
     
     
    [ Search ]  [Options ]  [File Opt]  [  Quit  ]
                                  Start file recovery
    Alles anzeigen



    Edit Ok falsche Exe ausgeführt sry

  • JButton mit PNG Icon und Alpha Kanal auf JPanel mit Background und Alpha Kanal

    • Nicholas1991
    • 3. Januar 2010 um 21:43

    Das Problem ist ja nicht die Combo JButton plus transparentes PNG sondern JButton plus transparentes PNG plus transparentes JPanel.
    Hier mal der Code dazu:

    Java
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.event.*;
     
    public class GeradeAusgedachtMitCodeAusschnitten extends JFrame {
        private JPanel pn_Background = new JPanel(null);
        private JPanel pn_Status = new JPanel(null);
        private JButton bt_BauStr = new JButton();
        private ImageIcon[] buttonIcons = new ImageIcon[]{
                                    new ImageIcon("pic_norm.png"),
                                    new ImageIcon("pic_press.png")
        };
     
     
        public GeradeAusgedachtMitCodeAusschnitten () {
            super("Hallo");
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            setSize(300, 300);
            Container cp = getContentPane();
            cp.setLayout(null);
     
            pn_Background.setOpaque(true);
            pn_Background.setBounds(0, 0, 300, 300);
            pn_Background.setBackground(Color.BLUE);
            cp.add(pn_Background);
            pn_Status.setOpaque(true);
            pn_Status.setBackground(new Color(200, 200, 200, 50));
            pn_Status.setBounds(0, 100, 300, 200);
            pn_Background.add(pn_Status);
            bt_BauStr.setBounds(10, 5, pn_Status.getHeight()-10, pn_Status.getHeight()-10);
            bt_BauStr.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    //bisher noch nichts
                }
            });
            bt_BauStr.setOpaque(false);
            bt_BauStr.setBorderPainted(false);
            bt_BauStr.setContentAreaFilled(false);
            bt_BauStr.setFocusPainted(false);
            bt_BauStr.setMargin(new Insets(0,0,0,0));
            bt_BauStr.setPressedIcon(buttonIcons[1]);
            bt_BauStr.setIcon(buttonIcons[0]);
            pn_Status.add(bt_BauStr);
     
            setResizable(false);
            setVisible(true);
        }
     
        public static void main(String[] args) {
            new GeradeAusgedachtMitCodeAusschnitten ();
        } 
    }
    Alles anzeigen




    Ich hoffe der funktioniert auch bei euch ^^. Demonstriert denke ich ganz gut was ich meine.
    Momentan ist es so, dass ich zwar nicht das ganze Window neu zeichne, aber den gesamten bereich des Panels, auf dem der Button drauf ist, indem ich in der paintComponents methode vom JPanel, die paintComponent Methode vom JPanel aufrufe in der ich dann über getParent().paintComponent(g); (Wobei g ja noch den Clip vom JPanel hat oder?) den entscheidenden Teil des darunterliegenden Panels neu zeichne.

  • JButton mit PNG Icon und Alpha Kanal auf JPanel mit Background und Alpha Kanal

    • Nicholas1991
    • 3. Januar 2010 um 20:46

    Hallo Leute

    habe ein Problem mit meinen JButtons. Habe alle Effekte von Swing soweit entfernt und nur noch die Icons pressed etc. drauf. Die Icons sind aber nicht rechteckig. Deshalb hab ich png Bilder mit alpha Kanal genommen. Klappt soweit auch super gut.
    Wenn ich jetzt allerdings auf den Button draufklicke, zeichnet der den neu (mit dem Pressed-Icon). Er zeichnet allerdings die Pixel nicht vollkommen neu (von der untersten Schicht angefangen), sondern nur ab dem Component, auf dem er ist. Da meint JPanel, auf dem der JButton drauf ist allerdings ebenfalls einen Background mit alpha Kanal hat, zeichnet der sich immer wieder einfach drüber, sodass nach und nach der alpha effekt vom Background an der Stelle des JPanels verschwindet (100% Alpha Wert).
    Jetzt will ich natürlich nicht jedesmal repaint aufrufen müssen, nachdem ein Button geklickt wurde und das ganze Window neu zeichnen lassen (was doch recht aufwendig wäre).
    Gibt es da ein geschicktes Vorgehen?

  • Routereinstellungen für Java Socket

    • Nicholas1991
    • 3. Januar 2010 um 20:38

    Ok

    Dann versuch ich das so.

  • Seltsames Partitionsverhalten - Nicht existente Partition

    • Nicholas1991
    • 3. Januar 2010 um 10:38

    Festplattentyp
    Sata 2GB Hitachi Deskstar

  • Seltsames Partitionsverhalten - Nicht existente Partition

    • Nicholas1991
    • 2. Januar 2010 um 20:23

    Hallo Leute

    und wieder einmal darf ich einen vermurksten Rechner gerade biegen. Nur hab ich diesmal einfach keine Idee mehr was ich machen könnte.
    Problem:
    Neue HDD, 2 Partitionen eingerichtet vor ein paar Tagen (NTFS).
    Heute wurde mir präsentiert:
    3 Partitionen, 1. Partition verdoppelt (I Original, jetzt J als Duplikat) und normal die 2. Partition.
    Also ab in die Computerverwaltung über die klassische Systemsteuerung und zur Datenträgerverwaltung. Dort sind nur zwei Partitionen angegeben. Dachte, wenn ich die erste lösche, vielleicht verschwindet dann auch das Duplikat. Aber weit gefehlt. Das Duplikat ist immer noch im Arbeitsplatz zu sehen. Kann auch formatiert werden, und dateien können reingeschrieben werden. Aber ich kann immer noch in dem jetzt unpartitionierten bereich eine neue Partition erstellen und auch dort Dateien hinverschieben (das Duplikat nahm daraufhin die Größe der testweise erstellten Partition an. Diese Größe hat sie immer noch obwohl ich inzwischen alle Partitionen auf der neuen HDD gelöscht hab (war noch nichts drauf). Heißt ich habe eine neue Methode zur geheimnisvollen Festplattenvergrößerung gefunden, oder Windows oder ich machen irgendwas total falsch.
    Kann ich irgendwie die komplette Festplatte resetten? Mit deinstallieren ging es nicht (über GeräteManager), da da die Partitionen nicht verschwinden.

  • Routereinstellungen für Java Socket

    • Nicholas1991
    • 2. Januar 2010 um 17:41

    Ich glaub ich hab hier für einige Verwirrung gesorgt. Tschuldigung.

    Ich will folgendes machen. Ich habe ein Java-Programm bestehend aus einem Client Teil, der über die Klasse Socket verbindet, und einem Serverteil, der über die Klasse Serversocket auf Verbindungen wartet.
    Auf einem PC läuft also das Serverteil und auf dem anderen PC der Clientteil.
    Bei meinem Router (D-Link DIR-655) gibt es folgende Einstellungen die mit Ports zu tun haben:
    1. Virtual Server, da kann man eine IP Adresse eingeben und einen Public- sowie Private-port. Außerdem den Protokolltyp (bräuchte ich ja dann TCP)
    2. Port Forwarding, da kann man eine IP Adresse eingeben und mehrere Ports angeben (nichts mit public private etc.) und den Protokolltpy (bräuchte ich ja dann TCP)

    Meine Fragen sind:
    Muss ich bei 1 oder bei 2 etwas einstellen damit ich den Server-Teil benutzen kann.
    Muss mein Freund, der den Client Teil verwendet ebenfalls Ports freischalten.

    Hoffe ich hab mich diesmal verständlicher ausgedrückt

  • Routereinstellungen für Java Socket

    • Nicholas1991
    • 2. Januar 2010 um 16:28

    Hmmm
    das heißt, dass nicht nur der, der den Server-Socket startet, sondern auch der, der den Client-Socket startet, die Ports freischalten muss?

    Das wusste ich nicht

    danke

  • Routereinstellungen für Java Socket

    • Nicholas1991
    • 1. Januar 2010 um 23:12

    Heißt Virtual Server ist das was ich suche, nicht Port Forwarding?

    P.S.: Ja ich meinte TCP und UDP.

  • Routereinstellungen für Java Socket

    • Nicholas1991
    • 1. Januar 2010 um 19:16

    Hallo Leute,

    also bis jetzt hab ich Socketprogrammierung immer über Hamachi gelöst, weil ich mir da die Routerkonfiguration sparen konnte. Jetzt wollen aber manche Hamachi nicht mehr benutzen und ich wollte mich doch mal ranwagen und die Ports freischalten.
    Sind 3 Stück. Hab die einfach mal für UDP und FTP (was brauch ich denn eigentlich) über PortForwarding freigeschaltet. Ohne Erfolg.
    Bei Virtual Server kann ich allerdings nur 1 Port pro Service freischalten. Muss ich da dann 3 Einträge machen oder brauch ich eine ganz andere Einstellung?

    Vielen Dank für euer Bemühen und ein frohes neues Jahr 2010

Rechtliches

Impressum

Datenschutzerklärung