NullLayout

I-Love-Java

Mitglied
Hallo Zusammen, ich habe ein NullLayout eingebaut. Ich habe auch die Bounds gesetzt kann aber mein Label investition nicht hin und her verschieben... kann mir bitte jemand helfen? Ich sitze schon den ganzen Tag an diesem Problem... HIIIILFE!???

:L

;(

Java:
import java.awt.*;

import javax.swing.*;


public class StartFenster extends JFrame {
		
		
	StartFenster(){
		super("Mathematische Berechnungen");
		setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		
		JPanel erstesPanel = new JPanel();
		erstesPanel.setLayout(new BorderLayout());
				
		JPanel zweitesPanel = new JPanel ();
		zweitesPanel.setLayout(null);
		
		
	
		JLabel investition = new JLabel("Investition");
		investition.setFont(new Font("Arial", Font.BOLD, 15));
		investition.setBounds(750, 200, 250, 30);
		add(investition);
		
		
	
		
	}

	
	public static void main(String[] args) {
		
		StartFenster fenster1= new StartFenster ();

		
		fenster1.setSize(1200, 600);
		fenster1.setLocation(100,75);
		fenster1.setVisible(true);
		fenster1.setResizable(false);
		
	

	}

}


;(
 

eRaaaa

Top Contributor
Ich habe auch die Bounds gesetzt kann aber mein Label investition nicht hin und her verschieben...

Was meinst du mit hin-und her verschieben? Per drag and drop oder wie? Da wäre etwas mehr zu tun. Wenn du meinst, dass dein setBounds keine Wirkung erzielt, liegt das vermutlich daran, dass du das Label dem Contentpane des Frames hinzufügst und nicht dem Panel, welches du das null-Layout verpasst hast
Java:
		zweitesPanel.add(investition);
		add(zweitesPanel);
 

I-Love-Java

Mitglied
Was meinst du mit hin-und her verschieben? Per drag and drop oder wie? Da wäre etwas mehr zu tun. Wenn du meinst, dass dein setBounds keine Wirkung erzielt, liegt das vermutlich daran, dass du das Label dem Contentpane des Frames hinzufügst und nicht dem Panel, welches du das null-Layout verpasst hast
Java:
		zweitesPanel.add(investition);
		add(zweitesPanel);

Aber das geht auch nicht :bahnhof:
Ich glaube ich gebe es langsam auf :autsch:
 

eRaaaa

Top Contributor
Aber das geht auch nicht :bahnhof:
Ich glaube ich gebe es langsam auf :autsch:

WAS geht auch nicht? Beschreibe doch endlich mal GENAU was du vor hast, und wie jetzt dein Code aussieht. Hast du die Zeile [c] add(investition);[/c] herausgenommen? Die macht jetzt nämlich keinen Sinn mehr
Java:
	StartFenster() {
		super("Mathematische Berechnungen");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JPanel zweitesPanel = new JPanel();
		zweitesPanel.setLayout(null);

		JLabel investition = new JLabel("Investition");
		investition.setFont(new Font("Arial", Font.BOLD, 15));
		investition.setBounds(750, 200, 250, 30);

		zweitesPanel.add(investition);
		add(zweitesPanel);

	}

du hattest leider meine Frage nicht beantworten was du dir unter hin- und her verschieben vorstellst. Man kann dann nur schwer helfen....
 
Zuletzt bearbeitet:

I-Love-Java

Mitglied
Also: Ich werde für meine GUI mehrere Labels brauchen, die will ich mit dem NullLayout hin und her schieben. Jetzt habe ich ein Label bis her deklariert. Allerdings kann ich mein Label nicht nach rechts, nach links verschieben.
Java:
investition.setBounds(750, 200, 250, 30);
. So sieht das im Coding aus. Wenn ich aber
Java:
investition.setBounds(75, 20, 50, 300);
die Bounds setzte hat das auch keine Wirkung. Und ich komme nicht drauf, wieso ich mein Label innerhalb meines Fensters verschieben kann. Ich hoffe, dass ich das Problem näher erläutern konnte... ;(
 

eRaaaa

Top Contributor
Also: Ich werde für meine GUI mehrere Labels brauchen, die will ich mit dem NullLayout hin und her schieben. Jetzt habe ich ein Label bis her deklariert. Allerdings kann ich mein Label nicht nach rechts, nach links verschieben.
Java:
investition.setBounds(750, 200, 250, 30);
. So sieht das im Coding aus. Wenn ich aber
Java:
investition.setBounds(75, 20, 50, 300);
die Bounds setzte hat das auch keine Wirkung. Und ich komme nicht drauf, wieso ich mein Label innerhalb meines Fensters verschieben kann. Ich hoffe, dass ich das Problem näher erläutern konnte... ;(

Jetzt bin ich genau so schlau wie vorher(vllt liegt`s auch einfach an mir)

Also eig. sollte der Code oben funktionieren, mit setBounds sollte sich zumindest das Label positionieren lassen, hier eine Demo:
Java:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
 
 
public class StartFenster extends JFrame {
        
    StartFenster(){
        super("Mathematische Berechnungen");
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
              
        JPanel zweitesPanel = new JPanel ();
        zweitesPanel.setLayout(null);

        final JLabel investition = new JLabel("Investition");
        investition.setFont(new Font("Arial", Font.BOLD, 15));
        investition.setBounds(750, 200, 250, 30);
        
        zweitesPanel.add(investition);
        add(zweitesPanel);
        
        //optional:
        final Random r = new Random();
        new Timer(2000, new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				investition.setBounds(r.nextInt(1000), r.nextInt(500), 250, 30);
			}
		}).start();
       
    }
 
    public static void main(String[] args) {   
        StartFenster fenster1= new StartFenster ();
        fenster1.setSize(1200, 600);
        fenster1.setLocation(100,75);
        fenster1.setVisible(true);
        fenster1.setResizable(false);
    }
}

alles nach //optional ist nur um dir zu zeigen dass sich das Label verschieben lässt(hier durch einen Timer alle 2sek auf eine zufällige Position).

Was ist jetzt dein Problem? :autsch:
 

Neue Themen


Oben