Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 03:17

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[BlueJ Java Hilfe]

Discussion on [BlueJ Java Hilfe] within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,607
Received Thanks: 674
Arrow [BlueJ Java Hilfe]

Moin Com,

Ich bin so NetBeans verwöhnt, dass ich per Hand weder Fenster noch Buttons schreiben kann.
So weit bin ich:
Code:
import java.awt.*;
import javax.swing.*;

public class Test extends JFrame {
    private JButton jbutton1;
    
    public Test() {
        super("Fenster");
        setLocation(300,300);
        setSize(500,500);
        setLayout(new FlowLayout());
        setVisible(true);
    }
    
}
So zeigt er mir ja nur ein simples Fenster an.
Nun will ich darauf noch Buttons anzeigen lassen mit einem actionListener.
Weiß nur nicht mehr wie das geht und Google macht mich auch nich schlauer.
Kann mich wage an irgwas mit getContentpane().add(jbutton1) oder so. Naja wie dem auch sei. Sollte relativ einfach sein und ohne viel herum. Brauch das für mein Vorabi, von daher so wenig wie möglich Aufwand

#edit:
Jetzt ist ein Button drauf, aber nur ein Button und das Fenster hängt oben links minimiert.
Will aber weitere Buttons und dass das Fenster mitten im Bildschirm geöffnet ist.
Code:
import java.awt.*;
import javax.swing.*;

public class Test extends JFrame {
    public static void main(String[] args){
        new Test();}
    
 Test() {
        JFrame frame1 =new JFrame();
        frame1.setTitle("Fenster");
        frame1.setLayout(null);
        frame1.setBounds(300,300,300,300);
        JButton button1 = new JButton("Drück mich");
        button1.setBounds(10,10,80,20);
        add(button1);
        setVisible(true);
    }
    
}
edit #2:
Habs geschafft. So reichts mir aus.
Code:
import javax.swing.*;
import java.awt.*;

public class Fenster extends JFrame {
    public static void maon (String[] args){
        new Fenster();}
        
        Fenster(){ 
    JFrame f = new JFrame();
    setTitle("Fenster");
    setBounds(300,300,300,300);
    setLayout(new FlowLayout());
    JButton b1 = new JButton("Drücken");
    add(b1);
    b1.setBounds(60,60,60,60);
    JButton b2 = new JButton("Press");
    add(b2);
    b2.setBounds(30,30,30,30);
    setVisible(true);
   }
}
Danke im Voraus.
MfG Bombasticx3
Bombasticx3 is offline  
Old 11/17/2014, 21:47   #2
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Code:
f.setLocationRelativeTo(null); // Setzt das Fenster in die Mitte
Extende lieber den JPanel statt JFrame, in der Klasse wo du Elemente anzeigen würdest.

Und wegen den Layouts:
Lieber sowas:
Code:
FlowLayout fl = new FlowLayout();
...
fl.add(button1);
fl.add(button2);
fl.add(usw);
...
this.add(fl);
Verwendest du mehrere Panels, genau das selbe Prinzip, nur das du:
Code:
layout.add(komponente);
panel.add(layout);
this.add(panel);
verwendest.


Als gute Übung könntest du das ganze in 3 Klassen kapseln.
Starter Klasse welches dein Frame Klasse startet.
Die Frame Klasse(welche JFrame extended) startet deine Panel Klasse.
Deine Panel Klasse(welche JPanel extended) zeichnet deine Komponenten.
XxharCs is offline  
Thanks
1 User
Old 11/18/2014, 08:07   #3
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,607
Received Thanks: 674
Quote:
Originally Posted by XxharCs View Post
Code:
f.setLocationRelativeTo(null); // Setzt das Fenster in die Mitte
Extende lieber den JPanel statt JFrame, in der Klasse wo du Elemente anzeigen würdest.

Und wegen den Layouts:
Lieber sowas:
Code:
FlowLayout fl = new FlowLayout();
...
fl.add(button1);
fl.add(button2);
fl.add(usw);
...
this.add(fl);
Verwendest du mehrere Panels, genau das selbe Prinzip, nur das du:
Code:
layout.add(komponente);
panel.add(layout);
this.add(panel);
verwendest.


Als gute Übung könntest du das ganze in 3 Klassen kapseln.
Starter Klasse welches dein Frame Klasse startet.
Die Frame Klasse(welche JFrame extended) startet deine Panel Klasse.
Deine Panel Klasse(welche JPanel extended) zeichnet deine Komponenten.
Hab ja zum Vorabi noch meine alten Programme, dich und die Api. Also wird schon.Das mit dem ganzen Extenden ist noch zu überflüssig dafür, aber werd ich noch brauchen, also Danke
Bombasticx3 is offline  
Old 11/19/2014, 14:55   #4

 
Strew's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,533
Received Thanks: 932
Hier mal ein kleiner Ausschnitt:

Kann nicht ganz sicher sagen ob der fehlerfrei ist,
da ich grad leider nur Notepadd++ aufm PC hab.

Bin allerdings Java-Neuling und würde mich daher
nicht 100% drauf verlassen.

Falls noch Kleinigkeiten fehlen, editier sie grad flott selbst.

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

public class AdressBuch_v1 extends JFrame {

	Container c;
	JButton bzurueck;
	
	public AdressBuch_v1() {
		
		c = getContentPane();
		c.setLayout(new FlowLayout());

		bzurueck = new JButton ("Zurück");
		bzurueck.addActionListener(new ButtonListenerZurueck());
		
		c.add(bzurueck);
	}

	public static void main(String[] args) {
		
		AdressBuch_v1 fenster = new AdressBuch_v1();
		fenster.setTitle("Adressbuch");
		fenster.setSize(400,400);
		fenster.setVisible(true);
		fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}
	
	class ButtonListenerZurueck implements ActionListener {
		
		public void actionPerformed(ActionEvent e){
	
		}
	}

	
}

Mit freundlichen Grüßen,

Strew
Strew is offline  
Thanks
1 User
Old 11/25/2014, 20:11   #5
 
chrisyou's Avatar
 
elite*gold: 103
Join Date: Jun 2009
Posts: 1,972
Received Thanks: 410
Code:
package elitepvpers;
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JFrameTut extends JFrame implements ActionListener { //ActionListener implementieren
	private JButton b1,b2; //Hier deklarieren, damit sie von der ganzen Klasse wahrgenommen werden (für actionperformed-methode)
	public static void main (String[] args){
		new JFrameTut();}

	JFrameTut(){ 
		setTitle("Fenster");
		setBounds(300,300,300,300);
		setLayout(new FlowLayout());
		b1 = new JButton("Drücken");
		b1.addActionListener(this); //Lässt ActionListener auf b1 "horchen"
		add(b1);		
		b1.setBounds(60,60,60,60);
		b2 = new JButton("Press");
		b2.addActionListener(this); //Lässt ActionListener auf b2 "horchen"
		add(b2);	
		b2.setBounds(30,30,30,30);
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource()==b1){ //Ausgang des ActionEvents = b1, dann
			System.out.println("b1 pressed");
		}else if(e.getSource()==b2){ //Ausgang des ActionEvents = b2, dann
			System.out.println("b2 pressed");
		}
	}
}
Ich habe mich mal an deinem eigenen Lösungsversuch (3. Edit) orientiert und dir einen ActionListener implementiert, wie gewünscht. Ist auch alles kommentiert, sodass du es nachvollziehen kannst

Ich empfehle dir allerdings, dich mehr mit Java Swing und LayoutManagern zu beschäftigen.

Mit einem GridBagLayout z.B. lässt sich das Layout generell einfacher und strukturierter anfertigen.

Wenn noch Fragen sind, bitte
chrisyou is offline  
Reply


Similar Threads Similar Threads
[Java/BlueJ] Pfeiltastensteuerung -need help!
11/17/2014 - Java - 7 Replies
Hallo liebe com, Und zwar habe ich ein kleines problem, ich hab von meinem Lehrer in der schule eine extra Aufgabe bekommen wobei es um das steuern eines objektes (in dem fall einen Wurm/Raupe) per tasteneingabe.. Er selbst weiss nicht ob es möglich ist aber ich denke schon ;) Zum verständnis: Wir haben von ihm ein sogesehen vorgefertigten code bekommen mit Klassen für Rechtecke, Kreise, Quadrate und Dreiecke insklusive einer ausgabemöglichkeit in Form einer Leinwand. Unsere aufgabe war...
Java blueJ Ableitung einer Funktion
07/03/2013 - General Coding - 3 Replies
Guten Abend, meine AUfgabe in Informatik ist es mit einem Array,auf einer Oberfläche mit einer Ableitung einer Funktion + einen x wert den zugehörigen y Wert zu berechnen. Dabei ist es halt wichtig,dass ständig die coeffizienten im array gespeichert werden und dann mit einem x Wert multipliziert,sodass der zugehörige y wert herauskommt. Wie setze ich dies um?
Hilfe bei Bluej/Java programmierung
04/28/2013 - General Coding - 7 Replies
Moin Leute, ichbrauche jemanden der sich mit Java/Bluej. Wer sich halbwegs auskennt soll mich bitte anschreiben. es geht um einfache Dinge wie z.b. das programmieren eines Würfel etc. mfg yohnson :mofo:
Suche Hilfe bei BlueJ(Java)
01/16/2013 - .NET Languages - 8 Replies
Hallo, ich weiß nicht ob ihr BlueJ kennt , aber das haben wir auf jedenfall in der Schule in Informatik und ich muss als Hausaufgabe eine Methode schreiben. Das soll so eine Liste sein(also sowas ähnliches wie ein Array) und man weiß nicht wie lang die Liste ist, also das muss immer gehen und die soll den Durchschnitt aller Werte nehmen. ALso das soll ich in etwa machen und abgeben. Kann mir da jemand helfen? Würde dafür dann ein bischen Paypal oder sowas überweisen, wir werden...
Suche Hilfe bei BlueJ(Java)
01/16/2013 - General Coding - 20 Replies
Hallo, ich weiß nicht ob ihr BlueJ kennt , aber das haben wir auf jedenfall in der Schule in Informatik und ich muss als Hausaufgabe eine Methode schreiben. Das soll so eine Liste sein(also sowas ähnliches wie ein Array) und man weiß nicht wie lang die Liste ist, also das muss immer gehen und die soll den Durchschnitt aller Werte nehmen. ALso das soll ich in etwa machen und abgeben. Kann mir da jemand helfen? Würde dafür dann ein bischen Paypal oder sowas überweisen, wir werden uns...



All times are GMT +2. The time now is 03:17.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.