Я хотел бы создать кнопки и метки на панели с помощью ArrayList. У меня проблемы (я не придумал код, который действительно работает) соединяя все элементы arraylistes, потому что они имеют разные свойства. например, я хочу, чтобы каждая кнопка генерировалась с ее всплывающей подсказкой в определенном c месте панели Извините, если моя программа беспорядок, я новичок в этом это код, над которым я работаю
public CharMenu(PlayerChar playerChar){
try{
controlFreakCharMenu = Font.createFont(Font.TRUETYPE_FONT,
new File("font/ControlFreakCharMenu.ttf")).deriveFont(24f);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("font/ControlFreakCharMenu.ttf")));
} catch (IOException|FontFormatException fontEX) {
}
this.playerChar = playerChar;
setSize(350, 500);
setTitle("Menu Personnage");
setLocation(x, y);
setResizable(true);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
/*addWindowListener( new java.awt.event.WindowAdapter(){
@Override
public void windowClosing(java.awt.event.WindowEvent windowEvent){
if(JOptionPane.showConfirmDialog(null, "Êtes vous sur de vouloir quitter?"
+ "\nVotre progression ne sera pas sauvegardée!", "Confirmation", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION){
System.exit(0);
}
}
});*/
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
//Création d'onglets
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
//ImageIcon icon = createImageIcon("images/middle.gif");
//JComponent panelStats = makeTextPanel("Panel #1");
JPanel panelStats = new JPanel ();
panelStats.setLayout(gbl);
constraints.weightx=1;
constraints.weighty=1;
tabClade = new TabCladesJoueur();
tabClade.setPreferredSize(new Dimension (128, 128));
constraints.gridx=3;
constraints.gridy=2;
constraints.gridheight=1;
constraints.gridwidth=1;
panelStats.add(tabClade, constraints);
playerChar.setClade(tabClade.getClade(tabClade.getIndex()));
ToolTipManager.sharedInstance().setInitialDelay(100);
ToolTipManager.sharedInstance().setEnabled(true);
labEXP = new JLabel("EXP :"){
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-25));
}
};
JLabel texte1=new JLabel("ceci determine votre expérience");
Font myFont = new Font("Serif", Font.BOLD,12);
texte1.setFont(myFont);
labEXP.setToolTipText(texte1.getText());
labEXP.setFont(controlFreakCharMenu);
constraints.anchor = GridBagConstraints.FIRST_LINE_START;
constraints.weighty = 0;
constraints.gridx=8;
constraints.gridy=2;
constraints.gridheight=2;
constraints.gridwidth=2;
panelStats.add(labEXP, constraints);
labREP = new JLabel("REP :") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-55));
}
};
String texte2=("<html><center>"+"Votre réputation:<br> Son niveau augmente ou diminue selon vos actions,<br> et peut altérer vos interactions avec certains personnages. "+"<center><html>");
labREP.setToolTipText(texte2);
labREP.setFont(controlFreakCharMenu);
constraints.anchor = GridBagConstraints.LINE_START;
constraints.gridx=8;
constraints.gridy=2;
constraints.gridheight=2;
constraints.gridwidth=2;
panelStats.add(labREP, constraints);
labBUX = new JLabel("BUX :") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-25));
}
};
String texte3=("ceci est votre BUXX");
labBUX.setToolTipText(texte3);
labBUX.setFont(controlFreakCharMenu);
constraints.anchor = GridBagConstraints.LAST_LINE_START;
constraints.gridx=8;
constraints.gridy=2;
constraints.gridheight=2;
constraints.gridwidth=2;
panelStats.add(labBUX, constraints);
exp = new JLabel("1000");
exp.setFont(controlFreakCharMenu);
constraints.anchor = GridBagConstraints.PAGE_START;
constraints.gridx=9;
constraints.gridy=1;
constraints.gridheight=2;
constraints.gridwidth=2;
panelStats.add(exp, constraints);
rep = new JLabel("1000");
rep.setFont(controlFreakCharMenu);
constraints.anchor = GridBagConstraints.CENTER;
constraints.gridx=9;
constraints.gridy=1;
constraints.gridheight=2;
constraints.gridwidth=2;
panelStats.add(rep, constraints);
bux = new JLabel("1000");
bux.setFont(controlFreakCharMenu);
constraints.anchor = GridBagConstraints.PAGE_END;
constraints.gridx=9;
constraints.gridy=1;
constraints.gridheight=2;
constraints.gridwidth=2;
panelStats.add(bux, constraints);
//Boutons de sélection du portrait
precedentPortrait = new JButton( new ImageIcon("img/FlecheGauche.png") ) {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
Font CharMenuFont = new Font("ControlFreak", Font.ITALIC , 18);
tip.setFont(CharMenuFont);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-20));
}
};
String texte4=("Selectioner précedent portrait ");
precedentPortrait.setToolTipText(texte4);
precedentPortrait.setFont(controlFreakCharMenu);
constraints.gridx=2;
constraints.gridy=8;
constraints.gridheight=1;
constraints.gridwidth=1;
precedentPortrait.addActionListener(geaCharMenuButton);
panelStats.add(precedentPortrait, constraints);
prochainPortrait = new JButton( new ImageIcon("img/FlecheDroite.png") ) {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-25));
}
};
String texte5=("Selectionner prochain portait ");
prochainPortrait.setToolTipText(texte5);
prochainPortrait.setFont(controlFreakCharMenu);
constraints.gridx=3;
constraints.gridy=8;
constraints.gridheight=1;
constraints.gridwidth=1;
prochainPortrait.addActionListener(geaCharMenuButton);
panelStats.add(prochainPortrait, constraints);
//Noms des statistiques
labPointsDispo = new JLabel(" Points restants :") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-20));
}
};
String texte6=("Distribuer tous les points ");
labPointsDispo.setToolTipText(texte6);
labPointsDispo.setFont(controlFreakCharMenu);
constraints.fill=GridBagConstraints.HORIZONTAL;
constraints.weightx=1;
constraints.weighty=1;
constraints.gridx=3;
constraints.gridy=10;
constraints.gridheight=1;
constraints.gridwidth=2;
panelStats.add(labPointsDispo, constraints);
labForce = new JLabel(" Force :") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-25));
}
};
String texte7=("<html><center>"+"Détermine la vitalité maximum et votre aptitude avec le gant MC "+"<center><html>");
labForce.setToolTipText(texte7);
labForce.setFont(controlFreakCharMenu);
constraints.gridy=12;
panelStats.add(labForce, constraints);
labDexterite = new JLabel(" Dexterité :") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-25));
}
};
String texte8=("<html><center>"+"Détermine l'efficacité des items et votre aptitude avec le fusil relativiste. "+"<center><html>");
labDexterite.setToolTipText(texte8);
labDexterite.setFont(controlFreakCharMenu);
constraints.gridy=14;
panelStats.add(labDexterite, constraints);
labIntelligence = new JLabel(" Intelligence :") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-25));
}
};
String texte9=("<html><center>"+"Détermine l'amplitude de tous les talents et votre aptitude avec la torche solaire. "+"<center><html>");
labIntelligence.setToolTipText(texte9);
labIntelligence.setFont(controlFreakCharMenu);
constraints.gridy=16;
panelStats.add(labIntelligence, constraints);
//Affichage du nombre de points investis
pointsDispo = new JLabel( Integer.toString(playerChar.getPointsDispo()) );
pointsDispo.setFont(controlFreakCharMenu);
constraints.gridx=7;
constraints.gridy=10;
constraints.gridheight=1;
constraints.gridwidth=1;
panelStats.add(pointsDispo, constraints);
force = new JLabel( Integer.toString(playerChar.getForce()) );
force.setFont(controlFreakCharMenu);
constraints.gridy=12;
panelStats.add(force, constraints);
dexterite = new JLabel( Integer.toString(playerChar.getDexterite()) );
dexterite.setFont(controlFreakCharMenu);
constraints.gridy=14;
panelStats.add(dexterite, constraints);
intelligence = new JLabel( Integer.toString(playerChar.getIntelligence()) );
intelligence.setFont(controlFreakCharMenu);
constraints.gridy=16;
panelStats.add(intelligence, constraints);
charisme = new JLabel( Integer.toString(playerChar.getCharisme()) );
charisme.setFont(controlFreakCharMenu);
constraints.gridy=18;
panelStats.add(charisme, constraints);
volonte = new JLabel( Integer.toString(playerChar.getCharisme()) );
volonte.setFont(controlFreakCharMenu);
constraints.gridy=20;
panelStats.add(volonte, constraints);
//Créations des boutons d'attribution de points
plusForce = new JButton("+");
plusForce.setFont(controlFreakCharMenu);
constraints.gridx=9;
constraints.gridy=12;
plusForce.addActionListener(geaCharMenuButton);
panelStats.add(plusForce, constraints);
moinsForce = new JButton("-");
moinsForce.setFont(controlFreakCharMenu);
constraints.gridx=8;
moinsForce.addActionListener(geaCharMenuButton);
panelStats.add(moinsForce, constraints);
plusDexterite = new JButton("+");
plusDexterite.setFont(controlFreakCharMenu);
constraints.gridx=9;
constraints.gridy=14;
plusDexterite.addActionListener(geaCharMenuButton);
panelStats.add(plusDexterite, constraints);
moinsDexterite = new JButton("-");
moinsDexterite.setFont(controlFreakCharMenu);
constraints.gridx=8;
moinsDexterite.addActionListener(geaCharMenuButton);
panelStats.add(moinsDexterite, constraints);
plusIntelligence = new JButton("+");
plusIntelligence.setFont(controlFreakCharMenu);
constraints.gridx=9;
constraints.gridy=16;
plusIntelligence.addActionListener(geaCharMenuButton);
panelStats.add(plusIntelligence, constraints);
moinsIntelligence = new JButton("-");
moinsIntelligence.setFont(controlFreakCharMenu);
constraints.gridx=8;
moinsIntelligence.addActionListener(geaCharMenuButton);
panelStats.add(moinsIntelligence, constraints);
reset = new JButton("Réinitialiser");
reset.setFont(controlFreakCharMenu);
reset.setPreferredSize(new Dimension(100, 25));
constraints.gridy=10;
constraints.gridheight=1;
constraints.gridwidth=2;
reset.addActionListener(geaCharMenuButton);
panelStats.add(reset, constraints);
confirmer = new JButton("Confirmer le personnage") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-55));
}
};
String texte12=("<html><center>"+"Sauvegarder les changements appliqués lors de <br> la création du personnage ou d'un gain en niveau d'expérience.<br>Cette action est irréversible. "+"<html>");
confirmer.setToolTipText(texte12);
confirmer.setFont(controlFreakCharMenu);
constraints.anchor = GridBagConstraints.LAST_LINE_START;
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.gridx=0;
constraints.gridy=22;
constraints.gridheight=1;
constraints.gridwidth=10;
confirmer.addActionListener(geaCharMenuButton);
panelStats.add(confirmer, constraints);
vitaliteBar = new JProgressBar() {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-35));
}
};
String texte13=("<html><center>"+"Détermine l'état de vos fonctions vitales. <br> Si elle atteint zéro, vous mourrez."+"<center><html>");
vitaliteBar.setToolTipText(texte13);
vitaliteBar.setValue(80);
vitaliteBar.setFont(controlFreakCharMenu);
vitaliteBar.setPreferredSize(new Dimension(10,35));
vitaliteBar.setStringPainted(true);
vitaliteBar.setString("Vitalité : " + (vitaliteBar.getPercentComplete()*100)+ "%");
constraints.anchor = GridBagConstraints.LAST_LINE_START;
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.gridy=24;
constraints.gridheight=0;
constraints.gridwidth=0;
panelStats.add(vitaliteBar, constraints);
//Ajout des onglets
tabbedPane.add("PER", panelStats);
tabbedPane.setFont(controlFreakCharMenu);
//Onglet des talentButtons
GridLayout glTalents = new GridLayout(6,2);
JPanel panelTalents = new JPanel ();
panelTalents.setLayout(glTalents);
tabbedPane.add("TAL", panelTalents);
talentButtonAlchimiste = new JToggleButton("Alchimiste") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte14=("<html><center>"+"Bonus spécial pour chaque item et régénération automatique en combat.<br> Requiert x DEX et y INT."+"<center><html>");
talentButtonAlchimiste .setToolTipText(texte14);
talentButtonAlchimiste.setFont(controlFreakCharMenu);
talentButtonAlchimiste.addActionListener(geaCharMenuToggle);
panelTalents.add(talentButtonAlchimiste);
talentButtonAssassin = new JToggleButton("Assassin") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte15=("<html><center>"+"Bonus variés durant les premiers tours d'un combat et possibilité d'infliger des coups critiques. <br> Requiert x DEX. "+"<center><html>");
talentButtonAssassin.setToolTipText(texte15);
talentButtonAssassin.setFont(controlFreakCharMenu);
talentButtonAssassin.addActionListener(geaCharMenuToggle);
panelTalents.add(talentButtonAssassin);
talentButtonBoxeur = new JToggleButton ("Boxeur") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte16=("<html><center>"+"L'attaque \"point cinétique\" du gant MC devient beaucoup plus puissante. <br> Requiert x FOR."+"<center><html>");
talentButtonBoxeur.setToolTipText(texte16);
talentButtonBoxeur.setFont(controlFreakCharMenu);
talentButtonBoxeur.addActionListener(geaCharMenuToggle);
panelTalents.add(talentButtonBoxeur);
talentButtonCapitaliste = new JToggleButton("Capitaliste") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte17=("<html><center>"+" Peut acheter des items et bonus en plein combat. <br> Requiert x CHA. "+"<center><html>");
talentButtonCapitaliste.setToolTipText(texte17);
talentButtonCapitaliste.setFont(controlFreakCharMenu);
talentButtonCapitaliste.addActionListener(geaCharMenuToggle);
panelTalents.add(talentButtonCapitaliste);
//Peut acheter des bonus en plein combat
//CHA
talentButtonDresseur = new JToggleButton("Dresseur") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte18=("<html><center>"+"Peut appeler des animaux apprivoisés ou domptés au combat. <br> Requiert x CHA. "+"<center><html>");
talentButtonDresseur.setToolTipText(texte18);
talentButtonDresseur.setFont(controlFreakCharMenu);
talentButtonDresseur.addActionListener(geaCharMenuToggle);
panelTalents.add(talentButtonDresseur);
talentButtonGuerillero = new JToggleButton("Guerillero") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte19=("<html><center>"+"Peut temporairement fuir le combat pour un tour, puis revenir avec des bonus importants. <br> Requiert x DEX."+"<center><html>");
talentButtonGuerillero.setToolTipText(texte19);
talentButtonGuerillero.setFont(controlFreakCharMenu);
talentButtonGuerillero.addActionListener(geaCharMenuToggle);
panelTalents.add(talentButtonGuerillero);
talentButtonHero = new JToggleButton("Héro") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte20=("<html><center>"+"Dialogues boni au cours des combats. <br> Requiert x CHA et y VOL. "+"<center><html>");
talentButtonHero.setToolTipText(texte20);
talentButtonHero.setFont(controlFreakCharMenu);
talentButtonHero.addActionListener(geaCharMenuToggle);
panelTalents.add(talentButtonHero);
talentButtons = new ButtonGroup();
talentButtons.add(talentButtonAlchimiste);
talentButtons.add(talentButtonAssassin);
talentButtons.add(talentButtonBoxeur);
talentButtons.add(talentButtonCapitaliste);
talentButtons.add(talentButtonDresseur);
talentButtons.add(talentButtonGuerillero);
talentButtons.add(talentButtonHero);
GridLayout glInventaire = new GridLayout(10,2);
JPanel panelInventaire = new JPanel ();
panelInventaire.setLayout(glInventaire);
tabbedPane.add("INV", panelInventaire);
labVoid = new JLabel ("");
panelInventaire.add(labVoid);
labVoid = new JLabel ("");
panelInventaire.add(labVoid);
armeButtonGantMC = new JToggleButton("Gant MC") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte26=("<html><center>"+" Gantelet magnétocinétique permettant d'attirer ou de repousser un ennemi, <br> ou frapper avec une force redoutable lorsque celui-ci est suffisament proche."+"<center><html>");
armeButtonGantMC.setToolTipText(texte26);
armeButtonGantMC.setFont(controlFreakCharMenu);
panelInventaire.add(armeButtonGantMC);
armeButtonFusilRelativiste = new JToggleButton("Fusil Relativiste") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-40));
}
};
String texte27=("<html><center>"+"Arme capable d'accélérer des projectiles à des vitesses proches, voir dépassant celle de la lumière. <br> Accepte trois types de munitions (bradyon, luxon, tachyon) et doit être chargé pour faire feu."+"<center><html>");
armeButtonFusilRelativiste.setToolTipText(texte27);
armeButtonFusilRelativiste.setFont(controlFreakCharMenu);
panelInventaire.add(armeButtonFusilRelativiste);
armeButtonProjecteurTonal = new JToggleButton("Proj. Tonal") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-60));
}
};
String texte28=("<html><center>"+" Projecteur tonal: <br> Canon sonique inséré dans la paume de la main, infligeant des malus important lorsqu'utilisé à la tonalité appropriée. <br> L'utilisateur doit estimer la tonalité idéale. "+"<center><html>");
armeButtonProjecteurTonal.setToolTipText(texte28);
armeButtonProjecteurTonal.setFont(controlFreakCharMenu);
panelInventaire.add(armeButtonProjecteurTonal);
armeButtonTorcheSolaire = new JToggleButton("Torche Solaire") {
@Override
public JToolTip createToolTip() {
JToolTip tip = super.createToolTip();
tip.setBackground(Color.YELLOW);
tip.setForeground(Color.RED);
return tip;
}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(event.getX()-15 , (event.getY()-60));
}
};
String texte29=("<html><center>"+"Laser extrêmement puissant monté au poignet, pompé par une charge explosive. <br> Consomme une charge chimique, électrique, nucléaire ou psionique au choix du joueur, chacune offrant ses propres avantages. <br> Ne peut être utilisé qu'une fois tous les 4 tours."+"<center><html>");
armeButtonTorcheSolaire.setToolTipText(texte29);
armeButtonTorcheSolaire.setFont(controlFreakCharMenu);
panelInventaire.add(armeButtonTorcheSolaire);
armeButtons = new ButtonGroup();
armeButtons.add(armeButtonGantMC);
armeButtons.add(armeButtonFusilRelativiste);
armeButtons.add(armeButtonTorcheSolaire);
armeButtons.add(armeButtonProjecteurTonal);
спасибо за помощь