Grafische Benutzeroberflächen - welche Komponente nehme ich am besten?

Ingerten

Bekanntes Mitglied
Hallo, guten Morgen liebe Leute und für alle Fussballfans ein "ole ole - wir sind WELTMEISTER".

Da ich grade erst angefangen habe, mit Java zu Programmieren, sind da noch ein paar fragen offen, eigentlich ein paar sehr viele Fragen, aber ich glaube das sprengt jetzt den Rahmen.

Also zur Sache, ich habe mir ein JTree erstellt, wie auf dem Bild zu sehen ist, jetzt möchte ich die Images, die er im Dateibaum findet, als kleine vorschau im "Feld 4" haben, genauso wie es auf dem Bild zu sehen ist.
Man soll die Datei natürlich auch mit einem Doppelklick öffen können.

Jetzt die Frage:
Was für eine Swing Komponente eignet sich für das "Feld 4" am besten? Ich habe es mit dem JTextField versucht,
aber da habe ich das gefüll, das es nicht die richtige Komponente für mein Vorhaben ist.

Vielen Dank schonmal im voraus.

tree_1.png
 

Ingerten

Bekanntes Mitglied
das ging aber schnell, besten Dank Gucky.
Ich werde mich gleich mal ransetzen und es ausprobieren.

Hat noch jemand ein Tipp, wie ich das Image in das JPanel einfügen kann? Ich habe gesehen, das es da verschiedene Möglichkeiten gibt und mein Gefühl sagt mir, das es für ein Anfänger garnicht so einfach ist, bei Java mit Bildern zu arbeiten.

Mir ist auch aufgefallen, das der Ein oder Andere auch mit HTML arbeitet. Ist es sinnvoll in meinem Fall HTML zu nutzen und kann man überhaubt mit HTML im JPanel arbeiten?
 
Zuletzt bearbeitet:

Gucky

Top Contributor
HTML geht natürlich auch. Ob man das im JPanel anwenden kann, weiß ich nicht. Ich glaube, das ist eher dafür geeignet, um Bilder in den Textfluss zu integrieren oder sie neben dem Text zu haben.

Guckt dir mal [JAPI]Graphics[/JAPI].drawImage() an.
 

Ingerten

Bekanntes Mitglied
Da bin ich schon wieder mit noch einer kleinen frage.

Ich habe mir jetzt eine kleine Methode erstellt:

Java:
public void paint(Graphics g){
	ImageIcon i = new ImageIcon("image/bild.png");
	image = i.getImage();
	g.drawImage(image, 100, 130, null);
	}

Jetzt habe ich aber mein JPanel in einer anderen Klasse. Wie lasse ich das Bild im JPanel anzeigen,
gibt es da eine möglichkeit mit "ADD" oder "SET"?

Komando zurück, habs hinbekommen, aber dennnoch danke.
Ich werde den Beitrag dann löschen.
 
Zuletzt bearbeitet:

Ingerten

Bekanntes Mitglied
Hey Männers, ich glaube langsam Java kann einen zur Verzweiflung bringen.

Mein Programm, was ich geschrieben habe, ist soweit fertig. Da habe ich mir gedacht, jetzt exportiere ich es mal,
um zu sehen ob es läuft und siehe da, die grosse Überraschung, er Läd mir die bilder nicht, die ich skalieren will.
Das was ich aber nicht verstehe ist, in Eclipse läuft alles wunderbar.

Jetzt habe ich schon an anderer Stelle festgestellt, das es daran liegt, wie man das Image einbaut.

Ich hatte es erst so, da hat er das Image nach dem Export nicht geladen.
Java:
public ImageIcon ICON_ROOT = new ImageIcon("harddisk.png");

Dann habe ich es so gemacht und es hat geklappt
Java:
public ImageIcon ICON_ROOT = new ImageIcon(this.getClass().getResource("harddisk.png"));

Wie mach ich das jetzt bei meiner Klasse, hab da schon ein paar sachen versucht, aber ohne Erfolg
hier der Code von meiner Klasse:

Java:
package main;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.imageio.ImageIO;
import javax.swing.*;


public class GraphicsTut extends JList{
    // Das anzuzeigende Icon
	private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    private ImageIcon icon = null;
    private Image img = null, bg_img = null;
    public static ArrayList <String> liste_pdf_open = new ArrayList<String>();
    public String index_filename = null;
    int wNew = 350, hNew = 508; // Grösse Vorschaubild
    // Der Text
    private String text;
 
    public GraphicsTut(String iconpath, String text) 
    {
    	this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		this.setVisibleRowCount(2);
    	
        // Erzeugung des ImageIcons durch Angabe des Bild-Quellpfads
        try {
        	img = new ImageIcon(ImageIO.read(new File(iconpath))).getImage();
			bg_img = new ImageIcon(ImageIO.read(new File("image/bg.jpg"))).getImage();
			
			Image scaledImage = img.getScaledInstance(wNew, hNew,Image.SCALE_SMOOTH);
			Image bg_Image = bg_img.getScaledInstance(505, hNew,Image.SCALE_SMOOTH);
			
			BufferedImage outImg = new BufferedImage(505, hNew,BufferedImage.TYPE_INT_RGB);
        
        Graphics g = outImg.getGraphics();
        g.setColor(Color.WHITE);
        g.drawImage(bg_Image, 0, 0, Color.WHITE, null);
        g.drawImage(scaledImage, 75, 0, Color.WHITE, null);
        Font myFont=new Font("Arial", Font.ITALIC|Font.PLAIN, 26);
        g.setFont( myFont ); //Schriftart setzen
		g.drawString(iconpath,50,50); //String rendern
       //g.drawImage(outImg, x, y, bgcolor, observer)
        g.dispose();
        
        
        g.translate(100, 0);
        icon = new ImageIcon( outImg );
        // Zuweisung des Textes       
        this.text = LINE_SEPARATOR + text;
      
        liste_pdf_open.add(iconpath);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        
    }       

	// Liefert das Icon
    public ImageIcon getIcon() 
    {
    return icon;
    }
 
    // Liefert den Text
    public String getText() 
    {
        return text;
    }
}

Besten Dank und LG
Ingerten
 

turtle

Top Contributor
Lies bitte dazu mal meinen Blog-Eintrag.

PS. Komplett lesen bietet sich auch an:oops:
Wenn du meinen Blog gelesen hast, weisst du, das folgende Zeile
Java:
new File(iconpath)
NICHT aus einer JAR läuft. Du musst ebenfalls hier über den Classpath gehen.
 
Zuletzt bearbeitet:

Ingerten

Bekanntes Mitglied
Besten Dank, sowas muss man als Anfänger erstmal wissen.

Aber ich muss mich erstmal entschuldigen, ich habe euch noch eine wichtige Info unterschlagen.
Die Images liegen auf der Festplatte z.b. "C:\images\A\" also nicht in der klasse.
Wie gehe ich denn da am besten vor, was mache ich denn da falsch?
 
Zuletzt bearbeitet:

turtle

Top Contributor
Na, dann hast du meinen Blog nicht komplett verstanden;)

Du musst lediglich den ClassPath anpassen.

Wenn du meine JarTest hernimmst und das Bild nach c:\images\a (bzw. c:\images\a\resources\images, weil das der Pfadname im Originalcode ist) kopierst, musst du aufrufen
Code:
java -cp .;c:\images\a JarTest
 

dzim

Top Contributor

Ingerten

Bekanntes Mitglied
Hallo Männers, das WE ist vorbei und da bin ich wieder.

erstmal zu @dzim,
da ich ja Anfänger bin und noch nicht so viel Erfahrung besitze, habe einfach die Swing-Klasse genommen, weil die in meinem Java-Buch, das ich gekauft habe, ausführlich erläutert wurde.
ich denke mal, beim nächsten Projekt werde ich mal die anderen klassen testen.

und jetzt der @turtle,
ich glaube ich habe es verstanden, es geht um diese Umgebungsvariablen, oder?
Aber eins musst du mir mal noch erklären, wie baue ich denn diese zeile ein?

Java:
java -cp .;c:\images\a JarTest

nehmen wir mal das Beispiel von deinem Blog, wie muss es dann aussehen?
Java:
    package test;
    import java.awt.BorderLayout;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class JarTest {
     
        public JarTest() {
            JFrame frame = new JFrame("Logo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JPanel panel = new JPanel();
            ImageIcon icon = createImageIcon("/resources/images/Oracle-Java-300x225.jpg", "Logo");
            JLabel label = new JLabel(icon.getDescription(), icon,  JLabel.CENTER);
            panel.add(label, BorderLayout.CENTER);
            frame.add(panel);
            frame.pack();
            frame.setVisible(true);
        }
       
        public static void main(String[] args) {
            new JarTest();
        }
     
        protected ImageIcon createImageIcon(String path, String description) {
            java.net.URL imgURL = getClass().getResource(path);
            if (imgURL != null) {
                return new ImageIcon(imgURL, description);
            } else {
                System.err.println("Couldn't find file: " + path);
                return null;
            }
        }
    }
 

turtle

Top Contributor
Du musst diese Zeile
Code:
java -cp .;c:\images\a JarTest
nicht in deinem Programm angeben, sondern diese IST der Aufruf von der Kommandozeile.

Startest du das Programm beispielsweise über Eclipse kannst du über die Run_Configuaration/Classpath beliebige Folder hinzunehmen.

Und innerhalb des Programms siehst du ja, das versucht wird folgende Resource zu laden
Java:
createImageIcon("/resources/images/Oracle-Java-300x225.jpg", "Logo")
Also musst du gar nichts im Programm ändern!
Wenn du das Bild Oracle-Java-300x225.jpg im Classpath unter c:\images\a haben möchtest, musst du erstens, wie oben beschrieben beim Aufruf den Classpath ändern UND die Datei unter c:\images\a\resources\images\Oracle-Java-300x225.jpg ablegen.

Beachte den Pfad /resources/images aus dem Code und der Lokation im Classpath unter c:\images\a.
 
Zuletzt bearbeitet:

Ingerten

Bekanntes Mitglied
So, ich denke mal, ich bin mit meinem Projekt so gut wie fertig, es sind nurnoch ein paar kleine Sachen

und aus diesem Grund möchte ich mich erstmal für eure Hilfe bedanken, ich glaube ohne die Hilfe aus dem Forum
wäre ich nie fertig geworden oder hätte zumindest ein ganzes Stück mehr Zeit gebraucht.

Also dann bis zum nächsten Projekt und Danke nochmal
:toll:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
H Mehrsprachigkeit und grafische Oberflächen Java Basics - Anfänger-Themen 4
R Grafische Benutzeroberfläche GUI nachträglich einbauen Java Basics - Anfänger-Themen 3
T Grafische programme - Variblen Schrift Java Basics - Anfänger-Themen 2
TomatenBrot447 Programmieraufgabe - Grafische Oberfläche- falsches Ergebnis? Java Basics - Anfänger-Themen 15
D Viele grafische unterschiede von Windows xp zu Windows 7 Java Basics - Anfänger-Themen 3
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
shiroX OOP Türme von Hanoi - einfache grafische Ausgabe Java Basics - Anfänger-Themen 2
K Panels, grafische Oberflächen Java Basics - Anfänger-Themen 7
K sich bewegende grafische Objekte Java Basics - Anfänger-Themen 68
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
B Grafische Oberfläche für Java-Programm Java Basics - Anfänger-Themen 5
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
F grafische Anzeige von Werten Java Basics - Anfänger-Themen 2
A Grafische Umsetzung von Aktienkursen Java Basics - Anfänger-Themen 2
M JavaSpiel ohne grafische Umsetzung Java Basics - Anfänger-Themen 3
T Grafische Oberfläche Java Basics - Anfänger-Themen 14
J Editor für grafische Oberfläche Java Basics - Anfänger-Themen 12
F Grafische Oberfläche.ist das kompliziert? Java Basics - Anfänger-Themen 7
G Grafische Oberfläche mit Buttons und Actionlistener? Java Basics - Anfänger-Themen 27
U Grafische Eingabe und ausgabe mit java Java Basics - Anfänger-Themen 5
V Grafische Auswertung (Ampel-System) Java Basics - Anfänger-Themen 12
B Grafische Darstellung einer Emailverteilerliste Java Basics - Anfänger-Themen 2
K Benutzeroberflächen erstellen? Java Basics - Anfänger-Themen 26
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
L Welche Methode? Java Basics - Anfänger-Themen 7
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
C Datenbank - Welche Java Basics - Anfänger-Themen 5
S Welche Art von Liste? Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
T Welche Schleife? Java Basics - Anfänger-Themen 6
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
K welche art von Liste für TableModell Java Basics - Anfänger-Themen 2
D Welche API für komplexe XML-Struktur? Java Basics - Anfänger-Themen 25
S welche Programmstruktur? Java Basics - Anfänger-Themen 8
M Welche Datenbank? Java Basics - Anfänger-Themen 5
B Welche Themengebiete benötige ich? Java Basics - Anfänger-Themen 7
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
H Welche Art der Ein/Ausgabe Java Basics - Anfänger-Themen 2
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
S Welche Collection? Java Basics - Anfänger-Themen 5
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
N Welche Datenstukturen und Methoden Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben