Java Bild wird nicht angezeigt, warum?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn man keinen LayoutManager benutzt, kommt man manchmal zu erstaunlichen Ergebnissen.

Das erklärt so einiges... danke^^

0

Änder mal die Reihenfolge. Warscheinlich überlagerst du das Bild. Oder halt transparent machen.

also zu:

     label1.setIcon(meinImageIcon);  
            this.add(label1);       
            this.add(label2);
     label1.setIcon(meinImageIcon);  
            this.add(label2);       
            this.add(label1);

Java Serialisierung und Aufrufen von Dateien?

Hey Leute, ich habe einige Fragen zum Speichern von Dateien:

ich habe eine Klasse namens Struktur, die gespeichert werden soll. Code:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
public class Struktur implements Serializable { 
private static final long serialVersionUID = 1L; 
ArrayList<Ebene> list; 
public Struktur(String name, int wert) { 
Ebene e = new Ebene(name, wert); 
list = new ArrayList<>(); list.add(e); 
} 
public Struktur() 
{ list = new ArrayList<Ebene>();
 } 
public void add(String name, int wert) { 
Ebene e = new Ebene(name, wert); list.add(e);
 }


@SuppressWarnings("unchecked")
public void print()
{
    Collections.sort(list);
    for(int i = 0; i&lt;list.size(); i++)
    {   
        System.out.println(list.get(i).getName()+ " "+ list.get(i).getWert());
        
    }
}

public void speichern(String name, int wert) throws IOException
{
    FileOutputStream fos;
    fos = new FileOutputStream("liste.ser");    
    add(name, wert);        
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(list);      
    oos.close();
}
public void lesen() throws IOException, ClassNotFoundException
{
    print();
    FileInputStream fis = new FileInputStream("liste.ser");
    ObjectInputStream ois = new ObjectInputStream(fis); 
    ois.close();
}

}


Dies funktioniert auch alles, jedoch kann ich die Daten erst lesen, wenn ich in der main()-Methode die Methode speichern() ausgeführt habe.

public class Ausführen {
	public static void main(String args[]) throws IOException, ClassNotFoundException  
	{
      Struktur s = new Struktur();
		s.speichern("Thomas", 2341);
		s.speichern("Sigfried", 2345);
		s.speichern("Bernd", 123421);
		s.lesen();
}


Wenn ich jedoch diese Methoden, weg lasse und nur lesen() aufrufe, wird mir nichts mehr ausgegeben.

Ich denke es liegt daran, dass ich die readObject()-Methode in lesen() nicht rein geschrieben habe und beim Ausführen immer der Konstruktor eine neue Liste erzeugt und diese dann ausgegeben wird und nicht die Daten, die eigentlich gespeichert wurden.

Kann mir jemand helfen und sagen, wie ich die Methode so ändern muss bzw. wo ich die Methode lesen() schreiben soll, damit ich die Datei auch auslesen kann?

...zur Frage

Wie füge ich hier ein JScrollPane ein?

Hallo,

Kann mir jemand sagen wie ich beim JPanel ein JScrollPane einfüge.

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
public class button extends JFrame{



public static void main(String[] args) {
    button frame = new button();
    frame.setVisible(true);
    frame.setSize(500,600);
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);


}

public button(){
    super();

    getContentPane().setLayout(null);
    



    JPanel panel = new JPanel();
    panel.setBounds(10,30,100,101);
    add(panel);
    
    int j = 0;

    for (int i =0;i  grösserzeichen 200 ;i++ ) {
        
    
        JLabel label = new JLabel();
        label.setText(String.valueOf(i));
        
        label.setBounds(10,j,40,10);
        panel.add(label);   
        j = j +20;
    }
}
}

Danke

...zur Frage

Wie kann ich in Java ein JLabel vor ein anderes stellen?

Ich versuche hierbei ein JLabel mit dem Namen Rechteck zu erzeugen, welches einen grünen Hintergrund hat. Danach will ich in einem bestimmten Zeitabstand immer 10 JLabels mit dem namen Zelle darüber legen, was aber nicht funktioniert. Wenn man den Befehl "Rechteck.setOpaque(true);" auskommentiert, kommt mein gewünschtes Ergebnis raus, nur das das Feld eben noch grün sein sollte.

Hier ist mein vereinfachter Code: (die Klassen Zellen,Zelle und Test habe ich hier einfach mal weggelassen)

package Main;

import java.awt.Color;

public class GUI extends JFrame{

private static final long serialVersionUID = 1L;

LinkedList<Zelle> GUIZellen = new LinkedList<Zelle>();

JLabel Rechteck= new JLabel();
JPanel Panel = new JPanel();

public GUI(){
    super();
    main();
}

public void main(){
    this.setTitle("Zellen");
    this.setSize(500,900);
    this.setLayout(null);
    this.setLocation(1600,10);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Panel.setSize(500,900); 
    Panel.setLayout(null);
    
    Rechteck.setBounds(22,180,441,661);
    Rechteck.setBackground(Color.green);
    Rechteck.setOpaque(true);
    Rechteck.setBorder(BorderFactory.createLineBorder(Color.black));
    Panel.add(Rechteck);

    this.add(Panel);
    this.setVisible(true);
}

public void GUIZelle(){

    int x=0;
    while(x<28||x>440){
        x=(int)((Math.random()) * 440 + 1);
    }
    
    int y=0;
    
    while(y<190||y>830){
        y=(int)((Math.random()) * 830 + 1);
    }
    
    GUIZellen.add(new Zelle(x,y));
    neueZelle();
}

public void neueZelle(){
    JLabel Zelle = new JLabel();
    Zelle.setBounds(GUIZellen.getLast().getX(), GUIZellen.getLast().getY(), 10, 10);
    Zelle.setBorder(BorderFactory.createLineBorder(Color.black));
    Zelle.setOpaque(true);
    Panel.add(Zelle);
    
}

}


package Main;

import java.awt.Graphics;
import java.util.Timer;
import java.util.TimerTask;

public class Ticker {

public Ticker(){
    final Timer timer = new Timer();

    timer.schedule(
        new TimerTask() {
            public void run() {
                BeiTick();
            }
       }, 0L, 1000L
     );
}

public void BeiTick(){
    Test.z.setZellenAnz(Test.z.getZellenAnz()+1);
    if(Test.z.getZellenAnz() % 1==0){
        for(int i=0;i<10;i++){
            Test.g.GUIZelle();
        }
        
    }
}
}
...zur Frage

Verbindung von Netzwerken, wer kann mir den Sinn von folgenden Geräten erklären (siehe unten)?

Also ich schreib bald Abitur in meiner Fachrichtung (IT) und weiß die Funktion folgender Geräte noch nicht, das muss ich aber drauf haben:

Repeater, Hub, Switch, Bridge, Netzwerkkarte, Router, Gateway, Proxy

Also was ein Router ist weiß ich das ist wie zu Hause der dich ans Internet verbindet. Ein Switch weiß ich auch was das ist, ein Switch erweitert nur die Ports am Router mehr nicht, zb wenn der Router nur 4 Eingänge für LAN Kabel hat dann kann man sich eine Switch mit 20 Eingängen kaufen und halt mehr Geräte anschließen. Eine netzwerkkarte weiß ich auch was das ist die dient ja zum senden der Netzwerkdaten etc aber was ist der Rest?

Was ist ein repeater? Welchen Zweck hat er? Was ist eine Bridge, Gateway, Hub, USW? Bei mir zu Hause gibt’s keine Bridge, keinen hub, keine Gateway und wir haben dennoch Internet also was ist der Sinn dieser Geräte?

Mit freundlichen Grüßen

...zur Frage

Wie sieht die Punktnotation in Java aus oder wie kann ich auf auf andere Klassen zugreifen?

Wie kann ich in der Klasse Telefon die Methoden aus der Klasse Telefonbuch verwenden ? Wenn ich es mit Punktnotation versuche wie z.B.

public void eintrag_hinzufuegen(String name)
{
    Telefonbuch.hinzufuegen(name);
}

, kommt die Fehlermeldung : non static method cannot be referenced from a static context

1)

import java.util.ArrayList;
public class Telefon
{
protected ArrayList <Telefonbuch> telefonbuch;
protected boolean eingeschaltet;
        
        public Telefon()
    {
        // initialise instance variables
        telefonbuch = new ArrayList <Telefonbuch>();
    }
    
    public void anrufen (String name)
    {
    }
    
    public void einschalten()
    {
        eingeschaltet = true;
    }
    
    public void telefonbuch_uebersicht()
    {
        
    }
    
    public void eintrag_hinzufuegen(String name)
    {
    }
    
    public void eintrag_entfernen(String name)
    {
    }
    
    public boolean eintrag_suchen(String name)
    {
    }
}

2)

import java.util.Arrays;

/**
 * Write a description of class Telefonbuch here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Telefonbuch
{
    // instance variables - replace the example below with your own
    private int anzahl_eintrag;
    private int kapazitaet;
    private String[] name_liste;
    protected boolean gefunden;

    /**
     * Constructor for objects of class Telefonbuch
     */
    public Telefonbuch()
    {
        // initialise instance variables
        String [] name_liste = new String[kapazitaet];
        gefunden = false;
    }
    
    public void set_kapazitaet(int x)
    {
        kapazitaet = x;
    }
    
    public void telefonbuch_uebersicht()
    {
        for(int i=0; i < name_liste.length; i++)
        {
        System.out.println(name_liste[i]);
        }
    }
    
    public void hinzufuegen(String name)
    {
        
    }
    
    public void entfernen(String name)
    {
    }
    
    public boolean suchen(String name)
    {
        for(int i=0; i < name_liste.length; i++)
        {
         if(name_liste[i].equals(name))
         {
         gefunden = true;
         }
         else
         {
         //Abbruch
         }
        }
        return gefunden;
    }
}

...zur Frage

Wie lerne ich Programmier-Basics?

Ich würde gerne mal ausprobieren zu programmieren, aber da es so viele verschiedene Sprachen gibt, bin ich etwas überfordert und weiß nicht direkt wo ich anfangen soll, vorallem weil ich zuerst noch die Basics lernen sollte. Wie kann ich das am besten machen? Oder soll ich gleich mit einer Sprache wie z.B Java beginnen? Gibt es dazu gute Youtube Kanäle oder Internet Seiten? Danke schonmal

...zur Frage

Was möchtest Du wissen?