Nano Hash - криптовалюты, майнинг, программирование

Распространить событие MouseClick из Papplet в класс объекта

Итак, я использую eclipse и обработку для более тяжелого кодирования на Java, но у меня небольшие проблемы с моими производными классами:

У меня есть класс гистограммы с родительской переменной-членом, которая является основным PApplet, запускающим программу. Обработка уже имеет хорошее событие MouseClicked, и я хочу, чтобы мой класс гистограммы мог иметь свой собственный метод onclicked.

Итак, вот большой вопрос: как мне заставить это событие MouseClicked просочиться к моим объектам?

public RunOverview(PApplet p, float[] simBuckets, float[] pointBuckets, int xP, int yP, int len, int hi)
{
    this.parent = p;
    this.xPos = xP;
    this.yPos = yP;
    this.height = hi; 
 }
// SOMEHOW LISTEN FOR parent.MouseClicked()........

Заранее спасибо!

26.10.2013

Ответы:


1

Прямо сейчас ваш класс RunOverview хранит ссылку на класс PApplet. Вы также можете сделать обратное и PApplet сохранить ссылку на экземпляр RunOverview! В вашем конструкторе вы можете вызвать некоторую функцию, например registerOverview(this), которая определена в вашем коде обработки, чтобы сохранить ссылку в файле PApplet. Затем, когда вызываются функции мыши, вы можете напрямую вызывать функции RunOverview оттуда!

public RunOverview(PApplet p, float[] simBuckets, float[] pointBuckets, int xP, int yP, int len, int hi)
{
    this.parent = p;
    this.xPos = xP;
    this.yPos = yP;
    this.height = hi; 
    p.registerOverview(this);
 }
 public void mousePressed(int x, int y){}
 public void mouseReleased(int x, int y){}

А потом

RunOverview thingy;
void setup(){}
void draw(){}
void registerOverview(RunOverview view){
  thingy = view;
}
void mousePressed(){
  thingy.mousePressed(mouseX,mouseY);
}
void mouseReleased(){
  thingy.mouseReleased(mouseX,mouseY);
}

Просто не забудьте зарегистрировать его, прежде чем делать что-либо еще, иначе вы получите некоторые исключения нулевого указателя.

26.10.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..