У меня проблема с перемещением JPanels.JAVA JPanel выдвигается и сдвигается в то же время
У меня есть окно 400х600 и JPanel (красным цветом) 100x100
public class RulettModel {
private int num;
public void Slide() {
num = num + 1;
if(num > 600) {
num = -100;
}
}
public int getNum() {
return num;
}
}
class RulettListener implements ActionListener{
Timer tm = new Timer(1, this);
@Override
public void actionPerformed(ActionEvent e) {
tm.start();
int y = 0;
theModel.Slide();
theView.setNewLocationOfPiros(theModel.getNum(), y);
}
}
void setNewLocationOfJpanel(int x, int y) {
JPanel1.setLocation(x,y);
}
Этот код является частью моего кода, который необходимо здесь это прекрасно работает, мой JPanel скользит из окна в правую сторону и когда он выходит из wi ndow width его начало возвращается с -100, так что с левой стороны
У меня есть проблема: Я хочу, чтобы мой JPanel вышел с левой стороны, прежде чем он вышел наружу с правой стороны.
Итак, если половина панели уже вышла, то эта половина должна появиться слева, поэтому моя панель должна быть в 2-х местах за раз, половина здесь и половина есть что-то возможно?
Любые другие советы, оцененные для решения этой вещи.
Хорошая идея, но проблема с, что в будущем я хочу всю линию с полным JPanels красный и черный так каждый JPanel должен иметь дубликат, который был бы бардак разве что? – aXieEEE
Хм, это немного усложняет, но, вероятно, не так много. Имейте класс, который расширяет JLabel с помощью метода int: setNewLoc (boolean wrapToLeft) и JLabel [] этого класса. В TimerEvent (или как бы там ни называлось) каждый подкласс класса JLabel в массиве может вычислить его собственную новую позицию и вернуть его. Вызывающий метод может проверить, есть ли новая позиция> 600, и если да, скажите следующей JLabel в массиве об этом, чтобы он мог начать обертывать влево. В какой-то момент вам понадобится арифметика modulo arraySize, но вы можете заставить ее работать именно так. – plainOldNerd
Я попробовал это по-твоему, но это дублированные панели, где я должен спрятаться? я сначала сделал их видимыми, но могу ли я полностью удалить их из окна? http://imgur.com/a/9vBp9 Лучшее решение должно заключаться в том, чтобы установить свое местоположение ouf окна в том месте, где они должны быть, могу ли я установить их из окна как-нибудь в редакторе? – aXieEEE