Verständnisfrage Text und anschließende Bildausgabe?

Status
Nicht offen für weitere Antworten.
V

Verena

Gast
Hi liebe Java Programmierer ich hätte da mal eine Frage was würdet ihr mir raten wenn ich auf einen JButton klicke soll anschließend ein ca 10 x 10 cm große Beschreibung(Text) in eine Art Rahmen angezeigt werden und bei einem weiteren Kick auf einen "Pfeil" Button wird anschließend der Text durch ein Bild ersetzt. Und jetzt zu meiner Frage in was müsste der Text und das Bild angezeigt werden?? Ich weis is bissle doof beschrieben. Im Prinzip 1 Mausklick eine Text erscheint und ein weiteren klick soll das bis jetzt angezeigte Text durch ein Bild ersetzen?? Weis jemand wie ich diesne Vorgang in Java lösen könnte??
 

Marcel_Handball

Bekanntes Mitglied
Du könntest es in einem JLabel anzeigen:

Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Test
{
		static int clicks=0;
		static Icon i = new ImageIcon("pic.jpg");
  
		public static void main(String args[]){
	  
	  	JFrame f = new JFrame("Fenster");
	  	f.setSize(600,600);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setLayout(new BorderLayout());
		
		final JLabel l = new JLabel("");
		f.add(l);
		
		JButton b = new JButton("Drück mich");
		f.add(BorderLayout.LINE_START,b);
		b.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				if(clicks==0){l.setText("Text"); clicks++;}
				else{l.setIcon(i);}
			}
		});
		
		f.setVisible(true);
  }
 
}
 
V

Verena

Gast
Kann ich den Text und die Bilder mit einer Datenbank verbindne un im Label anzeigen?? Wäre das möglich?? Oder wie meinst du das genau?
 
V

Verena

Gast
Wäre das möglich das ich eine Textarea verwende und diese mit der DB verbinde um 1. das Bild anzuzeigen und beim 2. klick auf die Beschreibung angezeigt bekomme?
 
W

wayne0101

Gast
meine güte, verena! möglich ist sehr viel. der punkt ist nur, daß du nichts davon schreibst, daß der text editierbar sein soll. solange der text nur angezeigt werden soll, wäre ein JLabel das richtige, sonst musst du an der JTextArea erst mal alles mögliche ausschalten, damit sie eben nicht editierbar und nicht fokusierbar ist. selbstverständlich kannst du aber auch selbst eine component schreiben die das kann. und solange die nicht für den benutzer interaktiv sein soll, ist das noch nicht mal sonderlich schwer. könnte beispielsweise so aussehen:

Code:
class MyComponent extends JComponent {

    private Image image;
    private String text;

    private boolean showText;

    public MyComponent(Image img, String message){
        image = img;
        text = message;
        showText = true;
    }

    public void showText(){
        showText = true;
        repaint();
    }

    public void showImage(){
        showText = false;
        repaint();
    }

    public void paint(Graphics g){
        if( showText ){
            g.drawString(text,0,0);
        }
        else {
            g.drawImage(image,0,0,null);
        }
    }

    // das hier benötigst du, wenn du mit LayoutManagern arbeitest
    public Dimension getPreferredSize(){
        // unter der vorraussetzung, daß text und bild relativ gleich groß sind
        // ansonsten musst du die größe des textes berechnen.
        return new Dimension(image.getWidth(null),image.getHeight(null);
    }
}

aber um nun noch auf deine folgenden fragen zu antworten: die direkte verbindung einer Component mit einer Datenbank ist so im JDK nicht vorgesehen. dergleichen musst du dir selbst programmieren. denke beispielsweise mal daran, daß die datenbank dir die abfrageergebnisse in einer voreingestellten zeichencodierung liefern wird und woher soll nun java wissen, welche das ist. wenn du mit datenbanken arbeiten willst solltest du mal nach JDBC googlen, damit du erfährst wie und womit du eine verbindung deines programms zu einer datenbank herstellst. wenn du dann entsprechende packete deinem projekt hinzugefügt hast, kannst du mit deren klassen dann datenbankabfragen absetzen und die ergebnisse erhalten. anschließend musst du, entsprechend der codierung und art des ergebnisses, code schreiben, der das ergebnis auswertet und in eine für deine applikation verwertbare form bringt.

kleines beispiel: du willst ein bild laden. nehmen wir mal an, deine datenbank ist eine MySQL-datenbank und das bild ist in einem feld des typs BIGTEXT utf8-codiert gespeichert. die datenbank ist so konfiguriert, daß sie dir die ergebnisse ebenfalls in utf8 übermittelt, sozusagen also 1:1. was du benötigst wäre der MySQL-Connector, downloadbar auf der MySQL-homepage. würde ich dir jetzt den gesamten code aufschreiben würde meine post warscheinlich locker 2 bildschirme füllen, deshalb hier die kurzform:

1. datenbankverbindung herstellen
2. datenbankabfrage absetzen: "SELECT imageData FROM images WHERE ..."
3. ergebnis erhalten und verbindung zurücksetzen
4. ergegnis liegt als UTF-8-String vor
5. umwandlung des Strings in ein BufferedImage per JPEGImageDecoder oder ImageIO (ggf. vorher nach byte[] casten)
6. bild in deine anzeigende component setzen ( myLabel.setIcon(new ImageIcon(myImage)) )

saubere programmierung heißt auch, den anzeige-teil vom verarbeitungsteil zu trennen (zumindest war das die meinung einiger meiner professoren an der FH sowie ettlicher programmierer mit denen ich im laufe meines werdegangs zu tun hatte ... und natürlich ist das auch meine eigene meinung). deshalb gibt es in java auch keine Access-typischen operationen, wie beispielsweise ein Textfeld mal eben schnell auf ne tabelle zu ziehen, kurz noch herumkonfigurieren und fertig. ich kann dir nur empfehlen dir ein bis zwei klassen zu machen, die das mit der datenbankverbindung handeln, sodaß du quasi nur noch einen aufruf an eine der klassen machst (z.B. myDBBridge.loadImage(aImageID) ) welche diesen aufruf dann an die nächste weitergibt (z.B. myDB.executeQuery("SELECT image FROM images WHERE imageID=aImageID") ). letztere sollte dann das ergebnis wieder in einer allgemeinen form zurückwerfen, beispielsweise als Hashtable (keys wären die spaltennamen und values sind ArrayLists, alle gleich lang, eben entsprechend der zeilen der datenbank-antwort). so zumindest wäre mein lösungsansatz und so habe ich bereits diverse datenbank-anbindungen programmiert.

viel erfolg

wayne
 
V

Vertena

Gast
Hi danke Wayne für deine Mühe dürft ich dich noch kurz was Fragen also eignetlich hab ich es mir so vorgestellt ich mach ´ne TextArea diese verbinde ich mit einer Datenbank und wenn nich in eine Textarea den betreffendne Begriff eintippe dann wird in der Textarea 1. Bild angezeigt und mit einem weiteren klick auf einen Button wird mir eine
2. Beschreibung in der Textarea angezeigt. Und wen ndas ganze läuft will ich das als eine selbstständige Software umwandeln so das jeder PC das Porgramm installierne kann .
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JavaFX Verständnisfrage mit parametrisierten Methoden und FXML AWT, Swing, JavaFX & SWT 21
B JavaFX Verständnisfrage EventHandler<ActionEvent> Implementierung in meiner Klasse AWT, Swing, JavaFX & SWT 2
B JavaFX Grundlegende Verständnisfrage JavaFX<->Scene Builder AWT, Swing, JavaFX & SWT 12
L JavaFX Verständnisfrage zu JavaFX FXML und Controller-Klasse AWT, Swing, JavaFX & SWT 1
M Swing JButton-Konstruktor Icon-Parameter (Verständnisfrage) AWT, Swing, JavaFX & SWT 7
S Verständnisfrage EventListener AWT, Swing, JavaFX & SWT 6
S Verständnisfrage anonye Klasse ActionListener AWT, Swing, JavaFX & SWT 4
E EINFACHE Verständnisfrage zu repaint(), paintComponent(), usw. AWT, Swing, JavaFX & SWT 16
hdi Swing Erstmaliges setVisible - Verständnisfrage AWT, Swing, JavaFX & SWT 5
hdi Verständnisfrage: Container vs. Component AWT, Swing, JavaFX & SWT 3
V Verständnisfrage: Welche Positionierungskonstanten? AWT, Swing, JavaFX & SWT 4
R Verständnisfrage BufferStrategy: g.dispose() AWT, Swing, JavaFX & SWT 3
K Verständnisfrage zum CellRenderer AWT, Swing, JavaFX & SWT 4
A Verständnisfrage zur Ereignisbehandlung AWT, Swing, JavaFX & SWT 5
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
FrittenFritze Text in Flying Saucer selectierbar machen AWT, Swing, JavaFX & SWT 0
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
N In Textdatei Text anfügen per GUI AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
CptK Swing Button: ImageIcon unter den Text AWT, Swing, JavaFX & SWT 4
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
S 2D-Grafik affine Transformation für Text-Shape AWT, Swing, JavaFX & SWT 0
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
H JavaFX - Button und Text - Falsche Darstellung AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
E Swing Text verschwindet AWT, Swing, JavaFX & SWT 1
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
F Icons neben Text in Listview setzen AWT, Swing, JavaFX & SWT 2
K Rich Text FX von TomasMikula AWT, Swing, JavaFX & SWT 0
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
S JAVAFX HTMLEditor wrap text AWT, Swing, JavaFX & SWT 1
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
A JavaFX HTMLEditor in Text umwandeln AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
2 JLabel - setText ändert den Text nicht AWT, Swing, JavaFX & SWT 4
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel anzuzeigenden Text zentrieren AWT, Swing, JavaFX & SWT 9
javampir Java FX Text verschwindet nicht AWT, Swing, JavaFX & SWT 9
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
E To get a color text on the TextArea AWT, Swing, JavaFX & SWT 4
E To get color text on the TextArea AWT, Swing, JavaFX & SWT 5
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
S JLabel-Text in Methode setzen? AWT, Swing, JavaFX & SWT 2
F JPanel "zeichnet" keinen Text AWT, Swing, JavaFX & SWT 14
U WYSIWYG Text-Editor für JFrames AWT, Swing, JavaFX & SWT 8
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
J Text bei Eingabe löschen AWT, Swing, JavaFX & SWT 5
A SWT Auto completion in text box AWT, Swing, JavaFX & SWT 5
C Geloest: JTextfield: Titel automatisch entfernen, sobald Text eingegeben wird AWT, Swing, JavaFX & SWT 1
I Text zur Linie zeichnen AWT, Swing, JavaFX & SWT 1
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
X AWT Text der mit Graphics "drawString(...)" geschreiben wurde wieder löschen. AWT, Swing, JavaFX & SWT 6
O Swing Text aus Textfield auslesen AWT, Swing, JavaFX & SWT 8
B Text auf Display ausgeben [LWJGL] AWT, Swing, JavaFX & SWT 2
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
S TextArea get Selected row(Text) AWT, Swing, JavaFX & SWT 6
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
J LayoutManager Text Spielerein GUI AWT, Swing, JavaFX & SWT 2
H Javafx - Styled Text AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben