PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JApplet



Elscha
26-12-2005, 23:57
Hy

Da ich nun mit Java in der Uni zu tun habe, wollt ich zur Übung ne kleine JAVA HP für mich selbst programmieren (als JApplet).

Nun habe ich allerdings 3 Probleme (vorerst nur 3 ;-)):

1. Wenn ich das Programm unter Eclipse programmiere und ausführe läuft alles einwandfrei. Wenn ich es allerdings von meienr HP aus betrachte ist zunächst nichts zusehen, gehe ich mit der Maus über die Knöpfe erscheinen sie. Will ich meine selbst krierten Panels sehen (eigenen Ständige, von JPanel abgeleitet Panels mit geladenen grafiken), muss ich das Browser fenster in der Größe ändern und dann wird auch nur das erste Panel angezeigt.

2. Gibt es irgendwo im Netz eine gute und verständliche deutsche erklärung zum GridBagLayout?

3. Kann man irgnedwie die größe eines Panels (oder Buttons) nur in der Breite bzw höhe verändern/festlegen?

Hier nochmal der HTML-Code wie das JApplet eingebunden wurde:

<APPLET CODE="HP.class" WIDTH=100% HEIGHT=100%>
Sorry aber du benötigst Java um diese Seite angucken zu können!
</APPLET>

Caveman
27-12-2005, 12:27
Es gibt zwei komplette Bücher im Netz:

http://www.galileocomputing.de/openbook/javainsel5/
und
http://www.javabuch.de/

Dort solltest Du Hilfe zum GridBagLayout finden.

Für Tabellen gibt es in der Klasse AbstractTableModel die Funktion fireTableDataChanged() zum aktuallisieren.
Etwas ähnliches sollte es auch für die Buttons geben.

Hoffe das konnte etwas weiter helfen.

(http://www.galileocomputing.de/openbook/javainsel5/)

Elscha
27-12-2005, 15:12
Zunächst einmal danke für den Link unter http://www.galileocomputing.de (http://www.galileocomputing.de/openbook/javainsel5/javainsel15_009.htm#Rxx747java15009040005411F04D1F 9) bin ich dann fündig geworden und hab da das nötige zum GridBagLayout erfahren. zudem brauche ich auch so nicht mehr meinem Panel ne bestimtme Breite zuweisen.

Habe aber noch imer 2 Probleme. das GridBagLayout fügt alles doppelt hinzu (obwohl ich jedes Element nur einmal hinzufüge) und das Appelt ist im browser nicht zu betrachten.

Hier nochmal der Quelltext zu meinem Applet, die Klassen Banner und Teaser sind vom JPanel abgeleitet und befinden sich auf der selben Seite wie das Applet.

import java.awt.*;
import javax.swing.*;

public class HP extends JApplet
{

public HP()
{
super();
bla();
}

public void init()
{
bla();
}

public void start()
{
bla();
}

public void bla()
{
//Bilder
Banner banner = new Banner();
Teaser teaser = new Teaser();

//Panel
JPanel menu = new JPanel();

//Dimensionen
Dimension banner_groesse = new Dimension(810,80);
Dimension teaser_groesse = new Dimension(176,131);

//Größen der Bilder werden festgelegt
teaser.setPreferredSize(teaser_groesse);
teaser.setMinimumSize(teaser_groesse);
banner.setPreferredSize(banner_groesse);
banner.setMinimumSize(banner_groesse);

//Knöpfe
JButton mathe_K = new JButton("Mathe");
JButton links_K = new JButton("Links");

//Layout vom JApplet
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());

//Layout vom Menü
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();

//Teaser: erstes OBjeckt der Spalte, Zeile, letztes dr Zeile
//gbc.gridx = 0;
//gbc.gridy = 0;
gbc.gridwidth = gbc.REMAINDER;
gbl.setConstraints( teaser, gbc );

//Mathe_K:
gbc.fill = gbc.HORIZONTAL;
gbc.gridwidth = gbc.REMAINDER;
gbl.setConstraints( mathe_K, gbc );

//Links_K
gbc.fill = gbc.HORIZONTAL;
gbc.gridwidth = gbc.REMAINDER;
gbl.setConstraints( links_K, gbc );

//Menu zuweisungen
menu.setLayout(gbl);
menu.add(teaser);
menu.add(mathe_K);
menu.add(links_K);

//Wert zuweisungen ins Applet
contentPane.add("North", banner);
contentPane.add("West", menu);



}
}

init(), start(), der Konstrucktor und bla() sind noch vom rumprobieren...