2011-01-21 5 views
8

Obecnie robię mój pierwszy aplet. Podczas testowania wyników chcę być w stanie uruchomić go w zaćmieniu w oknach podglądu, zamiast zawsze instalować aplet w słoiku i otwierać stronę w przeglądarce (pamięć podręczna przeglądarki zabija mnie!) Zawsze muszę ponownie uruchomić przeglądarkę. .)Zmiana rozmiaru dla mojego apletu także w zaćmieniu "uruchom jako aplet"

W każdym razie, gdy próbuję uruchomić aplikację z "uruchom jako -> aplet Javy" otrzymałem podgląd, ale zawsze jest bardzo mały (zgadnij poniżej 200x200). Kiedy zmieniam rozmiar na rękę, okno rośnie, ale zawartość pozostaje niewielka. Gdy zadzwonię pod numer setSize(width, height), okno zacznie się powiększać, a zawartość pozostanie mała. Mały nie oznacza, że ​​jest skalowany, oznacza to, że widzę tylko czarny panel, biały (widoczny w przeglądarce) nie jest widoczny, więc nie wydaje się skalowany ...

Co ja mam brakujący?

Mój kod tak daleko (który działa jak oczekiwano w broswer o szerokości 560 i wysokości 500)

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.GridLayout; 

import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Benchmark extends JApplet { 
private static final long serialVersionUID = -8767182603875435760L; 

GridLayout gridLayout = new GridLayout(7, 1); 
JButton startTests = new JButton("Start"); 
JPanel testPanel = new JPanel(); 
JPanel topPanel = new JPanel(); 

@Override 
public void init() { 
    super.init(); 
    try { 
    java.awt.EventQueue.invokeAndWait(new Runnable() { 
    public void run() { 
    initComponents(); 
    invalidate(); 
    } 
    }); 
    } catch (Exception ex) { 
    ex.printStackTrace(); 
    } 
} 

public void initComponents() { 
    setSize(660, 500); 
    topPanel.setBackground(Color.BLACK); 
    topPanel.setSize(500, 500); 

    testPanel.setBackground(Color.WHITE); 
    testPanel.setSize(160, 500); 

    getContentPane().add(topPanel, BorderLayout.WEST); 
    getContentPane().add(testPanel, BorderLayout.EAST); 
    testPanel.setLayout(gridLayout); 
    testPanel.add(new JLabel("Triangles")); 
    testPanel.add(new JLabel("Pyramids")); 
    testPanel.add(new JLabel("Cubes")); 
    testPanel.add(new JLabel("Blending")); 
    testPanel.add(new JLabel("Spheres")); 
    testPanel.add(new JLabel("Lights")); 
    testPanel.add(new JLabel("Mass")); 
} 
} 

zrzut ekranu powinien pojawić się problem. Jeśli okno ma rozmiar 660x500 (zestaw z setSize(), widoczny obszar pozostaje mały: Java Applet

Odpowiedz

5

Twój rozmiar okna jest ustawiony na 500,500, a więc jest to rozmiar twojego czarnego pola. Panel po prawej jest widoczny, jeśli Państwo poszerzyć swój ekran.

usunąć kod na ustawienie rozmiaru i min, max i preferowany rozmiar dla topPanel. Wtedy zamiast dodawania go do BorderLayout.WEST użyć BorderLayout.CENTER zamiast. pozwoli to panel testowy, aby pozostać na po lewej i zmieni rozmiar twojego czarnego pola podczas zmiany rozmiaru okna.

+0

w ten sposób widzę mój prawy panel, ponieważ układ jest dynamiczny (whi ch nie jest zły). Ale rozmiar podglądu wynosi około 200x200. Dodam zrzut ekranu do pytania ... – WarrenFaith

+4

Znalazłem przyczynę: mogę zmienić w konfiguracji uruchamiania wymiar apletu. Ustawienie go na 660 x 500 odpowiada mojemu rozmiarowi. – WarrenFaith