Изменение размера нескольких апплетов в Processing

Я использую код из этот ответ и у меня проблема с изменением размера первого апплета. Изменение значений размера (100, 100) ничего не дает. Как решить эту проблему?

public void setup() {
  size(100, 100);

  String[] args = {"TwoFrameTest"};
  SecondApplet sa = new SecondApplet();
  PApplet.runSketch(args, sa);
}

void draw() {
  background(0);
  ellipse(50, 50, 10, 10);
}     

public class SecondApplet extends PApplet {

  public void settings() {
    size(500, 500);
  }
  public void draw() {
    background(255);
    fill(0);
    ellipse(100, 50, 10, 10);
  }
}

person kukojus    schedule 14.10.2016    source источник
comment
Размер апплета задается в HTML. Апплет не должен пытаться угадать, какой размер для него указан в HTML. Асло: 1) Зачем кодировать апплет? Если это произошло по указанию учителя, отправьте его на Почему учителя компьютерных наук должны прекратить преподавать Java-апплеты. 2) См. Поддержка плагина Java устарела и Переход на сайт без плагинов.   -  person Andrew Thompson    schedule 14.10.2016


Ответы (1)


Простое решение — просто переместить первый size() в функцию settings():

void settings() {  
  size(500, 100);
}

void setup() {
  String[] args = {"TwoFrameTest"};
  SecondApplet sa = new SecondApplet();
  PApplet.runSketch(args, sa);
}

void draw() {
  background(0);
  ellipse(50, 50, 10, 10);
}     

class SecondApplet extends PApplet {

  public void settings() {
    size(500, 500);
  }
  public void draw() {
    background(255);
    fill(0);
    ellipse(100, 50, 10, 10);
  }
}

Я не совсем уверен, почему это происходит. Я предполагаю, что это как-то связано с тем, что вам нужно вызывать size() из settings() при использовании eclipse. Подробнее здесь.

person Kevin Workman    schedule 14.10.2016
comment
Спасибо, это работает. Еще попутный вопрос, как изменить размер текста на втором экране? - person kukojus; 23.10.2016
comment
@kukojus Если у вас есть дополнительный вопрос, опубликуйте его как новый вопрос в отдельном сообщении. - person Kevin Workman; 23.10.2016