Изменение размера для моего апплета также в Eclipse "Run as applet" - PullRequest
8 голосов
/ 21 января 2011

Я сейчас делаю свой первый апплет. Во время тестирования результатов я хочу иметь возможность запускать его в Eclipse в окнах предварительного просмотра вместо того, чтобы всегда развертывать апплет в банке и открывать страницу в браузере (кеш браузера убивает меня! Мне всегда нужно перезапускать браузер .. .)

В любом случае, когда я пытаюсь запустить приложение с помощью «Запустить как -> Java-апплет», я получаю предварительный просмотр, но он всегда очень маленький (предположительно, ниже 200x200). Когда я изменяю размер на руку, окно увеличивается, но содержание остается таким маленьким. Когда я звоню setSize(width, height), окно начинает увеличиваться, а содержимое остается маленьким. Малый не означает, что он уменьшен, это означает, что я вижу только черную панель, а белую (которая видна в браузере) не видно, поэтому ее не масштабируют ...

Чего мне не хватает?

Мой код (пока он работает так, как ожидалось в браузере с шириной 560 и высотой 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"));
 }
}

Скриншот должен показать проблему. Если окно имеет размер 660x500 (задается с помощью setSize(), видимая область остается маленькой: Java Applet

1 Ответ

5 голосов
/ 21 января 2011

Ваш размер окна установлен на 500,500, и поэтому это размер вашего черного ящика.Панель справа видна, если вы расширяете экран.

Удалите код для установки размера и минимального, максимального и предпочтительного размера для topPanel.Затем вместо добавления его к BorderLayout.WEST используйте BorderLayout.CENTER.Это позволит тестовой панели остаться слева и изменит размер черного ящика при изменении размеров окна.

...