J'ai un problème avec le déplacement JPanels.JAVA JPanel glisser et glisser en même temps
J'ai une fenêtre 400x600 et un JPanel (couleur rouge) 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);
}
Ce code fait partie de mon code qui est nécessaire ici, cela fonctionne bien mon JPanel glisse hors de la fenêtre sur le côté droit et quand il hors de wi ndow width son départ revenant de -100 donc du côté gauche
Le problème que j'ai: Je veux que mon JPanel vienne du côté gauche avant qu'il ne soit complètement sorti sur le côté droit.
Donc, si la moitié du panneau s'éteignait déjà, cette moitié devrait déjà apparaître à gauche, donc mon panneau devrait être à 2 endroits à la fois, la moitié ici et la moitié est-ce possible d'une façon ou d'une autre?
Tout autres conseils appréciés pour résoudre ce problème.
bonne idée, mais le problème avec cela à l'avenir je veux toute la ligne avec plein de JPanels rouge et noir si tous les JPanel devraient avoir un double qui serait un gâchis isnt qui? – aXieEEE
hmm, cela le complique un peu, mais probablement pas beaucoup. Avoir une classe qui étend JLabel avec une méthode int: setNewLoc (boolean wrapToLeft) et un JLabel [] de cette classe. Sur le TimerEvent (ou quel que soit son nom), chaque sous-classe JLabel du tableau peut calculer sa propre nouvelle position et la renvoyer. La méthode appelante peut vérifier si la nouvelle position est> 600, et si c'est le cas, indiquer le JLabel suivant dans le tableau à ce sujet afin qu'il puisse commencer à se déplacer vers la gauche. À un certain point, vous aurez besoin de modulo arraySize arithmetic, mais vous pourriez le faire fonctionner de cette façon. – plainOldNerd
Je l'ai essayé dans votre façon de travailler mais les panneaux dupliqués où devrais-je me cacher? Je les ai rendus faux d'abord, mais puis-je les enlever complètement de la fenêtre? http://imgur.com/a/9vBp9 meilleure solution devrait être de définir leur emplacement de la fenêtre à la position où ils devraient être, puis-je les mettre hors de la fenêtre en quelque sorte dans l'éditeur? – aXieEEE