Home
/
JavaForum
/
Swing + AWT
Infos
|
Features
|
Gold-Edition
|
Kundenservice
java
Übersicht
Forum
-
Beginner
-
Java allgemein
-
JDBC
-
JNI
-
Networking
-
Online-Ressourcen
-
Swing + AWT
-
XML
-
Meckerecke
Mitglieder
LOGIN
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
5.137 User online
0 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 189 von 1460 (13%)
Autor
Merci
Datum
10.12.03, 15:24
Betreff
Programm schreiben
1.Schreiben Sie die Methode
Achteck(x,y,w,h), die in dem von den 4 Koordinaten definierten Raum ein Achteck darstellt
2.Scheiben Sie ein Programm, das ein Fenster erzeugt, das immer den Focus behält (d.h. sich den Focus sofort zurückholt, wenn es ihn verliert). (Unten der Teil müsste modifiziert werden)
Ich muß eine dieser Aufgaben lösen, jedoch blieben
alle Versuche von mir bisher ohne Erfolg.
Danke
import java.awt.*;
import java.awt.event.*;
/**
Zeigt Fokus beim an- und Abschalten mit String an
mit eigenem Objekt für die Koordinatenberechung des Ausgabetextes
*/
class myFocus3 extends Frame
{
// public int kreisX = 30;
// int kreisY = 30;
// private boolean hatFocus = true;
private Font f;
public String AUSGABETEXT = "xxx";
private final int FONTGROESSE = 26;
public static void main (String[] args)
{
myFocus3 mf = new myFocus3();
}
public myFocus3()
{
super("Schreibt einen Text der anzeigt, ob das Fenster den Focus hat ");
addWindowListener(new WindowClosingAdapter(false));
addFocusListener(new myFocusListener());
setBackground(new Color(0,88,0));
f = new Font("Verdana", Font.PLAIN, FONTGROESSE);
setSize(500,400);
setVisible(true);
}
public void paint(Graphics gra)
{
Dimension di = getSize();
gra.setColor(new Color(99,255,88));
gra.fillRect(0,0, di.width, di.height ) ;
textKoordinaten tk = new textKoordinaten(AUSGABETEXT, FONTGROESSE,f);
Point textPunkt = tk.textKoBer(this, gra);
gra.drawString(AUSGABETEXT, textPunkt.x, textPunkt.y);
}
}
class textKoordinaten
{
int FONTGROESSE;
String AUSGABETEXT;
Font f;
textKoordinaten(String AUSGABETEXT, int FONTGROESSE,Font f )
{
this.AUSGABETEXT = AUSGABETEXT;
this.FONTGROESSE = FONTGROESSE;
this.f = f;
}
// Koordinaten für zentrierten Text berechnen
Point textKoBer(myFocus3 fenster, Graphics gra)
{
Dimension di = fenster.getSize();
int minOben, minLinks, maxRechts, maxUnten, hoehe, breite;
// Grenzen des beschreibbaren Fensters
minOben = fenster.getInsets().top;
minLinks = fenster.getInsets().left;
maxUnten = di.height - fenster.getInsets().bottom;
maxRechts = di.width - fenster.getInsets().right;
// hohe Breite des beschreibbaren Fensters
hoehe = maxUnten -minOben;
breite = maxRechts - minLinks;
gra.setColor(Color.blue);
gra.setFont(f);
FontMetrics fm = gra.getFontMetrics();
int stringLaenge = fm.stringWidth(AUSGABETEXT);
int textX, textY;
textX = minLinks + (int)breite/2 - (int)stringLaenge/2;
textY = minOben + (int)hoehe/2 + (int)FONTGROESSE/2;
Point ergPunkt = new Point (textX,textY);
return ergPunkt;
}
}
class myFocusListener extends FocusAdapter
{
public void focusGained(FocusEvent event)
{
myFocus3 fenster = (myFocus3) event.getSource();
fenster.AUSGABETEXT = "Focus !!" ;
fenster.repaint();
}
public void focusLost(FocusEvent event)
{
myFocus3 fenster = (myFocus3) event.getSource();
fenster.AUSGABETEXT = "Kein Focus !!" ;
fenster.repaint();
}
}
Diskussionsverlauf:
Programm schreiben
Re: Programm schreiben
Auf diesen Beitrag antworten
Neuen Beitrag verfassen
Impressum
·
Datenschutz
·
AGB
·
Infos
·
Presse
Ein modernes Forum:
teamturn.com