Quelltext kürzen

marian04

Aktives Mitglied
Hallo Leute,

ist es noch möglich diesen Quelltext zu kürzen?
Falls ja wie?
Warum das ganze?
Ich denke das ein kurzer Text einfacher zu überschauen ist.

[Java]import java.lang.String;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
*
* description
*
* @version 1.0 from 17.03.2010
* @marian
*/

public class testturtle6 extends JFrame {
// Anfang Attribute
private Canvas canvas1 = new Canvas();
private JPanel jPanel1 = new JPanel(null);
private JCheckBox jCheckBox1 = new JCheckBox();
private JCheckBox jCheckBox2 = new JCheckBox();
private ButtonGroup group = new ButtonGroup();
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton();
private JButton jButton3 = new JButton();
private JButton jButton4 = new JButton();
private JButton jButton5 = new JButton();
private JButton jButton6 = new JButton();
private JButton jButton7 = new JButton();
private JButton jButton8 = new JButton();
private JButton jButton9 = new JButton();
private JButton jButton10 = new JButton();
private JButton jButton11 = new JButton();
private JTextField jTextField1 = new JTextField();
private JLabel jLabel1 = new JLabel();

private Turtle7 kroete = new Turtle7();
// Ende Attribute

public testturtle6 (String title) {
super (title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 800;
int frameHeight = 600;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten

canvas1.setBounds(80, 16, 617, 337);
canvas1.setBackground(Color.WHITE);
cp.add(canvas1);

jPanel1.setBounds(80, 384, 617, 137);
cp.add(jPanel1);

jButton1.setBounds(8, 8, 81, 33);
jButton1.setText("Home");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});

jPanel1.add(jButton1);
jButton2.setBounds(104, 8, 81, 33);
jButton2.setText("Clear");
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton2_ActionPerformed(evt);
}
});

jPanel1.add(jButton2);
jButton3.setBounds(208, 8, 81, 33);
jButton3.setText("Vor. 10");
jButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton3_ActionPerformed(evt);
}
});

jPanel1.add(jButton3);
jButton4.setBounds(312, 8, 81, 33);
jButton4.setText("A");
jButton4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton4_ActionPerformed(evt);
}
});

jPanel1.add(jButton4);
jButton5.setBounds(416, 8, 81, 33);
jButton5.setText("Quadrat");
jButton5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton5_ActionPerformed(evt);
}
});

jPanel1.add(jButton5);
jButton6.setBounds(512, 8, 81, 33);
jButton6.setText("Links");
jButton6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton6_ActionPerformed(evt);
}
});

jPanel1.add(jButton6);
jButton7.setBounds(8, 56, 81, 33);
jButton7.setText("Rechts");
jButton7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton7_ActionPerformed(evt);
}
});

jPanel1.add(jButton7);
jButton8.setBounds(104, 56, 81, 33);
jButton8.setText("-45");
jButton8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton8_ActionPerformed(evt);
}
});

jPanel1.add(jButton8);
jButton9.setBounds(208, 56, 81, 33);
jButton9.setText("+45");
jButton9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton9_ActionPerformed(evt);
}
});

jPanel1.add(jButton9);
jButton10.setBounds(416, 56, 97, 33);
jButton10.setText("Winkel v.");
jButton10.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton10_ActionPerformed(evt);
}
});

jPanel1.add(jButton10);
jButton11.setBounds(312, 56, 81, 33);
jButton11.setText("Dreieck");
jButton11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton11_ActionPerformed(evt);
}
});

jPanel1.add(jButton11);
jLabel1.setBounds(176, 528, 416, 32);
jLabel1.setText("Status anzeige");
jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel1);

jTextField1.setBounds(288, 104, 137, 24);
jTextField1.setText("0");
jPanel1.add(jTextField1);

jCheckBox1.setBounds(32, 104, 137, 25);
jCheckBox1.setText("Nicht Zeichnen");

ItemListener malenlist = new ItemListener() {
public void itemStateChanged( ItemEvent e ) {
kroete.setPendown(false);
}
};
jCheckBox1.addItemListener( malenlist );





jCheckBox2.setBounds(480, 104, 125, 17);
jCheckBox2.setText("wieder Zeichnen");
jCheckBox2.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent evt) {
jCheckBox2_ItemStateChanged(evt);
}
});
jPanel1.add(jCheckBox1);
jPanel1.add(jCheckBox2);
// Ende Komponenten
setResizable(false);
setVisible(true);
kroete.setTurtle(canvas1);


group.add(jCheckBox2);
group.add(jCheckBox1);








}

// Anfang Methoden
public void jButton1_ActionPerformed(ActionEvent evt) {
kroete.h();
jLabel1.setText(kroete.status());
}

public void jButton2_ActionPerformed(ActionEvent evt) {
kroete.c();
jLabel1.setText(kroete.status());
}

public void jButton3_ActionPerformed(ActionEvent evt) {
kroete.v();
jLabel1.setText(kroete.status());
}

public void jButton4_ActionPerformed(ActionEvent evt) {
kroete.a();
jLabel1.setText(kroete.status());
}

public void jButton5_ActionPerformed(ActionEvent evt) {
kroete.q();
jLabel1.setText(kroete.status());
}

public void jButton6_ActionPerformed(ActionEvent evt) {
kroete.l();
jLabel1.setText(kroete.status());
}

public void jButton7_ActionPerformed(ActionEvent evt) {
kroete.r();
jLabel1.setText(kroete.status());
}

public void jButton8_ActionPerformed(ActionEvent evt) {
kroete.setRPos(kroete.getRPos()+315);
jLabel1.setText(kroete.status());
}

public void jButton9_ActionPerformed(ActionEvent evt) {
kroete.setRPos(kroete.getRPos()+45);
jLabel1.setText(kroete.status());
}

public void jButton10_ActionPerformed(ActionEvent evt) {
String text = jTextField1.getText();
int a = Integer.parseInt(text);
kroete.setRPos(kroete.getRPos()+a);
jLabel1.setText(kroete.status());
}

public void jButton11_ActionPerformed(ActionEvent evt) {
kroete.d();
jLabel1.setText(kroete.status());
}



public void jCheckBox2_ItemStateChanged(ItemEvent evt) {
kroete.setPendown(true);
}
//


// Ende Methoden

public static void main(String[] args) {
new testturtle6("testturtle6");
}
}
[/code]

Mfg
 

Nardian

Bekanntes Mitglied
ich empfehle dir statt den ganzen einzenlen ActionPerformed-Funktionen würd ich dir eher nur eine einzige verwenden, die mittels switch oder sowas arbeitet.. damit könntest du recht einfach zb
Java:
jLabel1.setText(kroete.status());
dir recht häufig ersparen (wenn die if / switch-konstruktion entsprechend ist)

und wenn dus wirklich kürzer machen willst, könntest du dir die ganzen einstellungen (wie name des JButtons, Font-eigenschaften, etc) alles in arrays packen, und dann einfach mit ner schleife alle JButtons (die dann ebenfalls ein JButton[] sein sollte), befüllen.

man kann im prinzip fast immer einen code kürzer machen, aber es ist eher selten, dass er dadurch einfacher / übersichtlicher wird. (ist aber auch zum teil geschmackssache)
 

Nardian

Bekanntes Mitglied
vermutlich kann man noch mehr am code kürzen, bin jetz auch schon etwas müde, also verzeiht wenn ich sogar crap gemacht hab ;)
(sollte btw eh nur als idee dienen - daher auch nur die jbuttons als array rausgezogen)

Java:
import java.lang.String;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

/**
 * 
 * description
 * 
 * @version 1.0 from 17.03.2010
 * @marian
 */

public class testturtle6 extends JFrame implements ActionListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = -1418787376026542777L;
	// Anfang Attribute
	private Canvas canvas1 = new Canvas();
	private JPanel jPanel1 = new JPanel(null);
	private JCheckBox jCheckBox1 = new JCheckBox();
	private JCheckBox jCheckBox2 = new JCheckBox();
	private ButtonGroup group = new ButtonGroup();
	private JButton[] jButtons = new JButton[11];
	private String[] texts = new String[]{
			"Home", "Clear", "Vor. 10", "A", "Quadrat", "Links", 
			"Rechts", "-45", "+45", "Winkel v.", "Dreieck"
	};
	private Rectangle[] rects = new Rectangle[]{
			new Rectangle(8, 8, 81, 33),
			new Rectangle(104, 8,81,33),
			new Rectangle(208, 8, 81, 33),
			new Rectangle(312,8,81,33),
			new Rectangle(416, 8, 81, 33),
			new Rectangle(512, 8, 81, 33),
			new Rectangle(8, 56, 81, 33),
			new Rectangle(104, 56, 81, 33),
			new Rectangle(208, 56, 81, 33),
			new Rectangle(416, 56, 97, 33),
			new Rectangle(312, 56, 81, 33)
	};
	private JButton jButton11 = new JButton();
	private JTextField jTextField1 = new JTextField();
	private JLabel jLabel1 = new JLabel();

	private Turtle7 kroete = new Turtle7();

	// Ende Attribute

	public testturtle6(String title) {
		super(title);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		int frameWidth = 800;
		int frameHeight = 600;
		setSize(frameWidth, frameHeight);
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		int x = (d.width - getSize().width) / 2;
		int y = (d.height - getSize().height) / 2;
		setLocation(x, y);
		Container cp = getContentPane();
		cp.setLayout(null);
		// Anfang Komponenten

		canvas1.setBounds(80, 16, 617, 337);
		canvas1.setBackground(Color.WHITE);
		cp.add(canvas1);

		jPanel1.setBounds(80, 384, 617, 137);
		cp.add(jPanel1);

		for(int i = 0; i < jButtons.length; i++){
			jButtons[i] = new JButton(texts[i]); //erspart das .setText
			jButtons[i].addActionListener(this);
			jButtons[i].setActionCommand(texts[i]); // wird beim actionEvent gebraucht
			jButtons[i].setBounds(rects[i]);
			
			jPanel1.add(jButtons[i]);
		}
		
		jPanel1.add(jButton11);
		jLabel1.setBounds(176, 528, 416, 32);
		jLabel1.setText("Status anzeige");
		jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
		cp.add(jLabel1);

		jTextField1.setBounds(288, 104, 137, 24);
		jTextField1.setText("0");
		jPanel1.add(jTextField1);

		jCheckBox1.setBounds(32, 104, 137, 25);
		jCheckBox1.setText("Nicht Zeichnen");

		ItemListener malenlist = new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				kroete.setPendown(false);
			}
		};
		jCheckBox1.addItemListener(malenlist);

		jCheckBox2.setBounds(480, 104, 125, 17);
		jCheckBox2.setText("wieder Zeichnen");
		jCheckBox2.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent evt) {
				jCheckBox2_ItemStateChanged(evt);
			}
		});
		jPanel1.add(jCheckBox1);
		jPanel1.add(jCheckBox2);
		// Ende Komponenten
		setResizable(false);
		setVisible(true);
		kroete.setTurtle(canvas1);

		group.add(jCheckBox2);
		group.add(jCheckBox1);

	}

	public void jCheckBox2_ItemStateChanged(ItemEvent evt) {
		kroete.setPendown(true);
	}

	//

	// Ende Methoden

	public static void main(String[] args) {
		new testturtle6("testturtle6");
	}

	@Override
	public void actionPerformed(ActionEvent action) {
		String ac = action.getActionCommand();
		int nr = -1;
		for(int i = 0; i < jButtons.length; i++){
			if(ac.equals(jButtons[i].getActionCommand())){
				nr = i;
				break;
			}
		}
		switch(nr){
			case 0: 
				kroete.h();
				break;
			case 1: 
				kroete.c();
				break;
			case 2:
				kroete.v();
				break;
			case 3:
				kroete.a();
				break;
			case 4:
				kroete.q();
				break;
			case 5:
				kroete.l();
				break;
			case 6:
				kroete.r();
				break;
			case 7:
				kroete.setRPos(kroete.getRPos() + 315);
				break;
			case 8:
				kroete.setRPos(kroete.getRPos() + 45);
				break;
			case 9:
				String text = jTextField1.getText();
				int a = Integer.parseInt(text);
				kroete.setRPos(kroete.getRPos() + a);
				break;
			case 10:
				kroete.d();
				break;
			default:
				System.err.println("error - unbekannter action-command!");
				break;
		}
		jLabel1.setText(kroete.status());
	}
}

greetz, Nardian
 

Nardian

Bekanntes Mitglied
bei meiner "lösung" sollte noch dazu gesagt werden, dass du aufpassen solltest - da in dem code nur eine array-länge überprüft wird (und zwar die von jbuttons).

soll heißen, dass wenn du einen neuen jbutton hinzufügst (also einfach in zeile 26 das .. = new JButton[11] auf [12] änderst), du in der for-schleife (73-80) klarerweise eine Exception bekommen wirst, weil es von rects und texts keine 12 einträge gibt (sondern nur 11).
also entweder einfach drauf aufpassen, dass alle 3 arrays immer gleich lang sind (bzw jbuttons am "kürzesten" ist, dann gibts auch keine probs), oder eben die for-bedingung um die beiden überprüfungen erweitern... also zb
[java=73] for(int i = 0; i < jButtons.length && i < texts.length && i < rects.length; i++){
[/code]

greetz
 

Michael...

Top Contributor
Sowas:
[Java] Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);[/code]
Kann man man mit folgendem ersetzen:
Java:
setLocationRelativeTo(null);

Wenn man einen anständigen LayoutManager verwendet, spart man sich das Platzieren der Komponente mit setBounds()
Ansonsten sollte man AWT Komponenten (z.B. Canvas) nicht mit Swing Komponenten mischen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Quelltext mit komischen griechischen Zeichen Java Basics - Anfänger-Themen 4
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
C Quelltext mit Formatierungs- und Style-Informationen versehen Java Basics - Anfänger-Themen 7
S HTML-Quelltext hinter HTTPS Java Basics - Anfänger-Themen 1
D Erste Schritte Suche Quelltext Java Basics - Anfänger-Themen 7
J QuellText Frage Java Basics - Anfänger-Themen 1
X Quelltext einen Tic Tac Toe Spiels erklären Java Basics - Anfänger-Themen 4
U Website Quelltext auslesen - Javaskripte im Hintergrund? Java Basics - Anfänger-Themen 4
T Quelltext wird nicht compiliert obwohl er Fehlerfrei ist. Java Basics - Anfänger-Themen 4
O Java will mir den Quelltext nich zu Bytecode Compilieren Java Basics - Anfänger-Themen 24
J Quelltext einer Homepage auslesen Java Basics - Anfänger-Themen 14
R Problem mit Quelltext : Kommazeichen Java Basics - Anfänger-Themen 7
E Quelltext für Grafik verschwindet Java Basics - Anfänger-Themen 9
R Quelltext sachen rausfiltern Java Basics - Anfänger-Themen 16
R Input/Output Formular absenden und Quelltext auslesen Java Basics - Anfänger-Themen 5
A Komentieren von Quelltext Java Basics - Anfänger-Themen 12
D Quelltext richtig verstanden? Java Basics - Anfänger-Themen 7
E Korrekter Quelltext? Java Basics - Anfänger-Themen 17
F HttpURLConnection Fehler beim Quelltext holen Java Basics - Anfänger-Themen 6
K Erste Schritte quelltext hilfe anfänger Java Basics - Anfänger-Themen 8
M Quelltext auslesen und diesen in einen String schreiben Java Basics - Anfänger-Themen 3
G Internet-Zugriff // URL posten, Quelltext einlesen Java Basics - Anfänger-Themen 5
E Compiler-Fehler Quelltext aus Buch erzeugt Fehler Java Basics - Anfänger-Themen 3
H Methoden Problem mit get-methode im Quelltext Java Basics - Anfänger-Themen 17
B Quelltext einlesen Java Basics - Anfänger-Themen 12
L Quelltext von vorgefertigten Klassen ansehen Java Basics - Anfänger-Themen 4
StrikeTom Quelltext einer Internetseite auf JTextArea anzeigen Java Basics - Anfänger-Themen 4
K Passage im Quelltext verstehen Java Basics - Anfänger-Themen 2
F Aus UML Diagramm Quelltext Java Basics - Anfänger-Themen 7
A Quelltext Java Basics - Anfänger-Themen 21
N kommentierter Quelltext zum Üben erwünscht Java Basics - Anfänger-Themen 6
R Quelltext einfügen und kompilieren Java Basics - Anfänger-Themen 4
D Quelltext zu vereinfachen? Java Basics - Anfänger-Themen 4
G Mit Java Quelltext auf Element untersuchen. Java Basics - Anfänger-Themen 5
G Brauche ein paar erklärungen zu Quelltext Java Basics - Anfänger-Themen 5
Y Einfachen Quelltext in UML darstellen mit Eclipse Java Basics - Anfänger-Themen 8
M Quelltext - Urls filtern Java Basics - Anfänger-Themen 4
S Verständnissprobleme mit Quelltext - Make Typ Java Basics - Anfänger-Themen 13
G Quelltext von Methoden in der Klasse Math Java Basics - Anfänger-Themen 11
D Quelltext schützen ? Java Basics - Anfänger-Themen 16
M quelltext html-seite speichern + links speichern Java Basics - Anfänger-Themen 2
B NSD-Diagramme aus Java-Quelltext erstellen! Java Basics - Anfänger-Themen 3
P Quelltext nicht kompilierbar Java Basics - Anfänger-Themen 15
I translate.java - kein sichtbarer fehler im quelltext Java Basics - Anfänger-Themen 18
L Quelltext problem Java Basics - Anfänger-Themen 46
G Quelltext compilieren und öffnen Java Basics - Anfänger-Themen 11
M Quelltext vom Applet Java Basics - Anfänger-Themen 20
M brauche hilfe mit folgendem quelltext Java Basics - Anfänger-Themen 7
V Quelltext einer Homepage einlesen Java Basics - Anfänger-Themen 12
N Quelltext durchsuchen ggfls Alarm schlagen. Java Basics - Anfänger-Themen 29
L quelltext kompilieren Java Basics - Anfänger-Themen 2
G eigenen Quelltext ausgeben Java Basics - Anfänger-Themen 8
G Html Quelltext auslesen der passwortgeschützt ist Java Basics - Anfänger-Themen 4
R Quelltext einer HTML-Seite auslesen Java Basics - Anfänger-Themen 2
M Wo liegt der Quelltext von System.out.println() Java Basics - Anfänger-Themen 3
M Handy Programm, kompletter Quelltext.Methodische Fehler? Java Basics - Anfänger-Themen 3
S Quelltext mit Fehlern Java Basics - Anfänger-Themen 12
U Abkürzung in Quelltext :(( Java Basics - Anfänger-Themen 7
thefastandcurious Brüche kürzen Java Basics - Anfänger-Themen 70
H Zahlen kürzen Java Basics - Anfänger-Themen 2
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
G Code kürzen Java Basics - Anfänger-Themen 5
G code kürzen Java Basics - Anfänger-Themen 16
F String auf E-Mail kürzen Java Basics - Anfänger-Themen 11
Kirby.exe Brüche kürzen Java Basics - Anfänger-Themen 12
F Code kürzen Java Basics - Anfänger-Themen 9
E Methoden Math.Random() kürzen ? Java Basics - Anfänger-Themen 2
J Code kürzen Java Basics - Anfänger-Themen 11
E Arrayeintrag nach Index löschen und Array kürzen Java Basics - Anfänger-Themen 3
E String komprimieren - Kürzen ohne Informationsverlust? Java Basics - Anfänger-Themen 13
A String kürzen Java Basics - Anfänger-Themen 12
J Brüche kürzen Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J kürzen von brüchen Java Basics - Anfänger-Themen 9
B Brüche kürzen Java Basics - Anfänger-Themen 7
N Datentypen Double nach 2 stellen kürzen Java Basics - Anfänger-Themen 4
D String kürzen, nich abschneiden Java Basics - Anfänger-Themen 9
M Text kürzen Java Basics - Anfänger-Themen 7
E Interface einfügen und Code kürzen Java Basics - Anfänger-Themen 15
M Programmierung kürzen??? Java Basics - Anfänger-Themen 5
S [HILFE] Brüche addieren, multiplizieren, kürzen Java Basics - Anfänger-Themen 17
E Kürzen des Quelltextextes Java Basics - Anfänger-Themen 16
U Code kürzen Java Basics - Anfänger-Themen 4
G bruch soweit es geht kürzen Java Basics - Anfänger-Themen 12
A String um 1 Zeichen kürzen ? Java Basics - Anfänger-Themen 6
S String kürzen auf bestimmte Länge Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben