Рисование пианино - PullRequest
1 голос
/ 14 мая 2010

Я начал работать над программным синтезатором (или клавиатурой). Я решил использовать Java из-за доступного Jfugue API. Я пытаюсь понять, как создать настоящие клавиши (примечания) пользовательского интерфейса клавиатуры, но я застрял. Я пытался создать интерфейс, перетаскивая черно-белые прямоугольные кнопки на панель, но это не сработало. Может ли кто-нибудь указать мне правильное направление?

Ответы [ 4 ]

1 голос
/ 14 мая 2010

Ознакомьтесь с ответом 9 этого сообщения для простой фортепианной клавиатуры , которая должна помочь вам начать. Возможно, вы захотите прочитать сообщение с самого начала, чтобы узнать, как работать с заметкой, представленной каждой кнопкой.

0 голосов
/ 16 июля 2010

Я думаю, это то, что вы хотите:

  1. Создать класс, расширяющий JPanel
  2. Переопределить метод paint () для рисования клавиш пианино
  3. Реализуйте MouseListener и MouseMotionListener и узнайте, когда пользователь щелкнул мышью по определенным клавишам
  4. Используйте StreamingPlayer в JFugue для динамического воспроизведения нот

Я являюсь автором JFugue, и я также хотел начать побочную работу, JFugueUI, которая бы обеспечивала такие вещи, как графические клавиатуры, которые люди могли бы включать в свои собственные приложения - поэтому, дайте мне знать, если заинтересованы в участии!

0 голосов
/ 14 мая 2010

Мне когда-то приходилось делать нечто подобное ... лучшее решение, которое я нашел, было рисовать панели и устанавливать их границы и фон в качестве ключей. Затем я использовал слушателей мыши, чтобы определить, какая панель была нажата, и продолжительность щелчка.

0 голосов
/ 14 мая 2010

Если вы используете Java / swing, лучше всего было бы нарисовать изображение клавиатуры и сопоставить местоположения щелчков с отдельными клавишами клавиатуры.

...