17. Übung - oth

Werbung
Programmieren in Java
17. Übung
1. Aufgabe
Schreibe ein Programm, das eine Textdatei (z.B. *.java“) aus dem aktuellen Verzeichnis über eine
„TextArea“ auf ein Fenster des Bildschirms abbildet. Jede Zeile soll dabei durchnummeriert werden.
Die Nummerierung ist in Kommentarzeilen einzuschließen. Zur Ermittlung der abzubildenen Datei ist
ein „FileDialog“ heranzuziehen. Die Abbildung soll ein einem speziellen Font „Helvetica“, im Stil
Font.Plain“ und mit der Fontgröße 10 erfolgen. Das Fenster soll nach der Anzeige vergrößert werden
können und schließlich auch wieder geschlossen werden können.
2. Aufgabe
Erstelle eine Java-Anwendung, die ein Fenster mit einem grünen Oval zeigt:
Der Fensterinhalt soll als Button fungieren. Falls dieser Button gedrückt wird (Mausklick) soll auf der
Konsole „Befehlsausführung“ausgegeben werden. Falls mit der Maus die Fensterfläche überstrichen
wird, soll der Hintergrund „rot“werden. Falls die Maus die Fensterfläche verlässt, soll der Anfangszustand, d.h. ein Hintergrung mit der Farbe „orange“, wiederhergestellt werden.
3. Aufgabe
Lies zwei ganze Zahlen über eine Eingabezeile ein und bestimme das Maximum dieser Zahlen. Die
Ausgabe soll auf die Konsole erfolgen.
4. Aufgabe
Schreibe eine Java-Anwendung, die Dateinamen über die Kommandozeile einliest und den Inhalt
dieser (Text-) Dateien zeilenweise auf der Konsole ausgibt. Exceptions bzw. Fehlerbehandlungsmaßnahmen sind aufzufangen bzw. einzurichten.
5. Aufgabe
Schreibe ein Java-Anwendung, die den Text „Ein gutes, erfolgreiches neues Jahr“in einem
Lauffenster der Größe „300 mal 100“ausgibt
1
Programmieren in Java
Lösungen
1. Aufgabe
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class Aufg1 extends Frame
{
private LineNumberReader ein;
public Aufg1() throws IOException
{
FileDialog d = new FileDialog(
this,
"Welche Datei soll geoeffnet werden?");
d.setFile("*.java");
d.setDirectory(".");
// Aktuelles Verzeichnis
d.show();
String datei = "*.*";
if ((datei = d.getFile()) != null)
{
try {
ein = new LineNumberReader(new FileReader(datei));
}
catch ( FileNotFoundException a)
{
throw a;
}
// dateiName.setText(datei);
// verzeichnis.setText(d.getDirectory());
try
{ dateiDarstellen(); }
catch (IOException a ) { throw a; }
}
else { }
}
public void dateiDarstellen() throws IOException
{
try {
String s = new String();
TextArea textBereich = new TextArea(s,24,80);
while ((s = ein.readLine()) != null)
{
s = "/* " + ein.getLineNumber() + " */ " + s + '\n';
textBereich.append(s);
}
textBereich.setFont(new Font("Helvetica",Font.PLAIN,10));
textBereich.setEditable( false);
this.add("Center",textBereich);
}
catch (IOException e) { }
this.show();
}
public static void main(String args[]) throws IOException
{
Frame f = new Aufg1();
f.addWindowListener(
new WindowAdapter()
{
2
Programmieren in Java
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
f.setVisible(true);
}
}
2. Aufgabe
import java.awt.*;
import java.awt.event.*;
class MeinButton extends Button
{
Aufg2 a;
public MeinButton()
{
super();
setBackground(Color.orange);
// Aktivierung des Filters
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
}
public MeinButton(Aufg2 a)
{
this();
this.a = a;
}
protected void processEvent(AWTEvent ae)
{
if (ae.getID() == MouseEvent.MOUSE_ENTERED)
{
setBackground(Color.red);
}
else if (ae.getID() == MouseEvent.MOUSE_EXITED)
{
setBackground(Color.orange);
}
else if (ae.getID() == MouseEvent.MOUSE_CLICKED)
{
a.test();
}
super.processEvent(ae);
}
public void paint(Graphics g)
{
Rectangle r = getBounds();
g.setColor(Color.green);
g.fillOval(2,2,r.width-4,r.height-4);
}
}
public class Aufg2
{
public void test()
{
System.out.println("Befehsausfuehrung");
}
public static void main(String [] args)
3
Programmieren in Java
{
Aufg2 anw = new Aufg2();
Frame f = new Frame(" ButtonTest");
f.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
MeinButton mb = new MeinButton(anw);
f.add(mb);
f.setSize(100,100);
f.setVisible(true);
}
}
3. Aufgabe
// import java.lang.*;
import java.io.*;
import java.util.*;
public class MaxTest
{
public static void main(String [ ] args)
{
BufferedReader ein = new BufferedReader(
new InputStreamReader(System.in));
String eineZeile;
StringTokenizer str;
int x;
int y;
System.out.println(
"Eingabe 2er ganzen Zahlen auf eine Zeile");
try {
eineZeile = ein.readLine();
str = new StringTokenizer(eineZeile);
if (str.countTokens() != 2)
throw new NumberFormatException();
x = Integer.parseInt(str.nextToken());
y = Integer.parseInt(str.nextToken());
System.out.println("Max: " + Math.max(x,y));
}
catch(Exception e)
{
System.err.println(
"Fehler: Zwei Eingaben sind noetig!");
}
}
}
4. Aufgabe
import java.io.*;
public class Aufg4
{
public static void listeDateien(String dateiName)
4
Programmieren in Java
{
FileReader dieDatei;
BufferedReader dateiEin = null;
String eineZeile;
System.out.println("Datei: " + dateiName);
try
{
dieDatei = new FileReader(dateiName);
dateiEin = new BufferedReader(dieDatei);
while ((eineZeile = dateiEin.readLine()) != null)
System.out.println(eineZeile);
}
catch(Exception e)
{ System.out.println(e); }
try
{
if (dateiEin != null)
dateiEin.close();
}
catch(Exception e)
{ System.out.println(e); }
}
public static void main(String [] args)
{
if (args.length == 0)
System.out.println("Keine Dateinamen angegeben!");
for (int i = 0; i < args.length; i++)
listeDateien(args[i]);
}
}
5. Aufgabe
import java.awt.*;
import java.util.*;
public class Aufg5 extends Frame implements Runnable
{
Thread t;
int x;
public Aufg5()
{
x = 0;
t = new Thread(this);
t.start();
}
public void paint(Graphics g)
{
g.drawString("Ein gutes, erfolgreiches neues Jahr",x,50);
}
public void run()
{
while (true)
{
try {
if (x > getSize().width) x = 0;
else x += 5;
repaint();
t.sleep(100);
}
catch(InterruptedException e)
5
Programmieren in Java
{
t.stop();
}
}
}
public static void main(String [] args)
{
Aufg5 a = new Aufg5();
a.setSize(300,100);
a.setVisible(true);
}
}
6
Herunterladen