|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Grille dans un Jpanel [ Multimédia / Java2D ] (ABF)
Informations & options pour cette discussion
mercredi 14 mai 2008 à 14:46:45 |
Grille dans un Jpanel

ABF
|
>Slt, > >J'ai un soucis en Java avec Netbeans, > >Je veux réaliser un grille sur un Jpanel avec des images MAIS c'est pas concluant !!! > >Ci-dessous mon code : > > >public static void main(String args[]) { > java.awt.EventQueue.invokeLater(new Runnable() { > public void run() { > new Viewer().setVisible(true); > > genGrille gen = new genGrille; //marche pas !!!! > gen.generer(); > } > }); > } > > > class genGrille extends JPanel{ > > private JLabel[] tbl = new JLabel[450]; > private JPanel panel; > > // Constructeur de la classe Morpion > void generer() > { > // création Jpanel > Container cont = getContentPane(); > panel = new JPanel(); > cont.add(panel); > > > // Le gestionnaire de mise en forme du Panel panel est redéfini > // en grille de 15 lignes, 30 colonnes avec 0 pixels entre chaques > panel.setLayout(new GridLayout(15,30,0,0)); > > > // Création des images 450 (15*30) et ajout au Panel panel > for (int i=1 ; i<450 ; i++) > { > JButton btn = new JButton(""); > btn.setText(""); > btn.setBounds(30,30,30,30); // je veux du 30x30 pixels et le positionner en 0,0 > //btn.setMaximumSize(30,30); //impossible > //btn.setIcon("vide.bmp"); //impossible > panel.add(btn); > } > > > } > } > > >Merci de votre aide > > >++
|
|
|
mercredi 14 mai 2008 à 15:57:59 |
Re : Grille dans un Jpanel

mouzart
|
slt
Post un code mieu formate si tu veux qu'on t'aide.
rgds
|
|
|
mercredi 14 mai 2008 à 16:15:11 |
Re : Grille dans un Jpanel

ABF
|
Heu je t'envoie ca en MP car dans le Forum, le code se dés-indente
|
|
|
mercredi 14 mai 2008 à 21:23:44 |
Re : Grille dans un Jpanel

Twinuts
|
Salut,
le post initial indenté :
Slt,
J'ai un soucis en Java avec Netbeans,
Je veux réaliser un grille sur un Jpanel avec des images MAIS c'est pas concluant !!!
Ci-dessous mon code :
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Viewer().setVisible(true); genGrille gen = new genGrille; //marche pas !!!! gen.generer(); } }); } class genGrille extends JPanel{
private JLabel[] tbl = new JLabel[450]; private JPanel panel; // Constructeur de la classe Morpion void generer() { // création Jpanel Container cont = getContentPane(); panel = new JPanel(); cont.add(panel); // Le gestionnaire de mise en forme du Panel panel est redéfini // en grille de 15 lignes, 30 colonnes avec 0 pixels entre chaques panel.setLayout(new GridLayout(15,30,0,0));
// Création des images 450 (15*30) et ajout au Panel panel for (int i=1 ; i<450 ; i++) { JButton btn = new JButton(""); btn.setText(""); btn.setBounds(30,30,30,30); // je veux du 30x30 pixels et le positionner en 0,0 //btn.setMaximumSize(30,30); //impossible //btn.setIcon("vide.bmp"); //impossible panel.add(btn); }
} }
------------------------------------ "On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
OoWORAoO
|
|
|
mercredi 14 mai 2008 à 21:36:54 |
Re : Grille dans un Jpanel

ABF
|
Merci, comment tu as fait pour l'indentation ? POur mieux comprendre, j'ai mis tout le projet dans http://cbprogs.free.fr/GestionGare.zip Je le mettrais sur JavaFr plus tard quand il sera finit, ca aidera les debutants comme moi ;) Merci de m'aider
|
|
|
mercredi 14 mai 2008 à 22:19:08 |
Re : Grille dans un Jpanel

mouzart
|
Voila ce qui te manque a toi de choisir le bon x/y et les bon param des constraints panel.setLayout(new GridLayout(15,30,0,0));
// Création des images 450 (15*30) et ajout au Panel panel for (int i=1 ; i<450 ; i++) { GridBagConstraints contraintes= new GridBagConstraints();
contraintes.gridx = x;//la position par rapport a l axe des absciss contraintes.gridy = y;//la position vertical contraintes.gridwidth = largeur; contraintes.gridheight = hauteur; contraintes.fill = typeElargissement; contraintes.anchor = typePosition; contraintes.ipadx = etalementHorizontal; contraintes.ipady = etalementVertical; JButton btn = new JButton(""); btn.setText(""); btn.setBounds(30,30,30,30); // je veux du 30x30 pixels et le positionner en 0,0 //btn.setMaximumSize(30,30); //impossible //btn.setIcon("vide.bmp"); //impossible panel.getLayout()).setConstraints(sousComposant,contraintes); panel.add(btn); }
|
|
|
mercredi 14 mai 2008 à 22:54:27 |
Re : Grille dans un Jpanel

ABF
|
Merci MAIS
genGrille gen = new genGrille();
gen.generer();
Plante maintenant
==================================
MA CLASSE COMPLETE :
package gestiongare;
import java.util.*; //lecture + timer
import java.util.Timer; //timer
import java.io.*; //fichier
import java.lang.String; //split
import java.awt.*;
import javax.swing.*;
/**
*
* @author Brice
*/
public class Viewer extends javax.swing.JFrame {
static Timer t;
static String [][] tblMap; //tbl de la map 2 dimensions
/** Creates new form Viewer */
public Viewer() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
btnEnd = new javax.swing.JButton();
jPanel = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Viewer");
btnEnd.setText("QUITTER");
btnEnd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEndActionPerformed(evt);
}
});
jPanel.setBackground(new java.awt.Color(204, 204, 204));
javax.swing.GroupLayout jPanelLayout = new javax.swing.GroupLayout(jPanel);
jPanel.setLayout(jPanelLayout);
jPanelLayout.setHorizontalGroup(
jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 557, Short.MAX_VALUE)
);
jPanelLayout.setVerticalGroup(
jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 296, Short.MAX_VALUE)
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(876, Short.MAX_VALUE)
.addComponent(btnEnd)
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(406, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 172, Short.MAX_VALUE)
.addComponent(btnEnd)
.addContainerGap())
);
getAccessibleContext().setAccessibleParent(jPanel);
pack();
}// </editor-fold>
private void btnEndActionPerformed(java.awt.event.ActionEvent evt) {
new Splash().setVisible(true);
dispose();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Viewer().setVisible(true);
//demande une map a charger
String temp="";
try
{
DataInputStream fichier;
fichier=new DataInputStream(new BufferedInputStream(new FileInputStream("chemin_du_fichier" )));
temp=fichier.readUTF();
//fichier ouvert
//genere la grille
genGrille gen = new genGrille();
gen.generer();
loadMap(temp);
fichier.close();
//lance le jeu
t = new Timer();
t.schedule(new Jeu(), 0, 200);
}
catch(Exception e)
{System.err.println("Message_erreur : " + e.getMessage() );
}
}
});
}
/*static class genGrille extends JPanel{
private JLabel[] tbl = new JLabel[450];
void generer()
{
// Auncun espacement entre les cases de la grille
setLayout(new GridLayout(15,30,0,0));
// Création et Ajout des images 450
for (int i=1 ; i<450 ; i++) {
GridBagConstraints contraintes= new GridBagConstraints();
contraintes.gridx = x;//la position par rapport a l axe des absciss
contraintes.gridy = y;//la position vertical
contraintes.gridwidth = largeur;
contraintes.gridheight = hauteur;
contraintes.fill = typeElargissement;
contraintes.anchor = typePosition;
contraintes.ipadx = etalementHorizontal;
contraintes.ipady = etalementVertical;
JLabel btn = new JLabel();
btn.setText("");
btn.setPreferredSize(new Dimension(30, 30));
btn.setIcon(new javax.swing.ImageIcon(".\\img\\vide.jpg"));
add(btn);
btn.setVisible(true);
}
}
}*/
// OU BIEN
class genGrille extends JPanel{
private JLabel[] tbl = new JLabel[450];
private JPanel panel;
void generer()
{
// création Jpanel
Container cont = getContentPane();
panel = new JPanel();
cont.add(panel);
// Le gestionnaire de mise en forme du Panel panel est redéfini
// en grille de 15 lignes, 30 colonnes avec 0 pixels entre chaques
panel.setLayout(new GridLayout(15,30,0,0));
// Création des images 450 (15*30) et ajout au Panel panel
for (int i=1 ; i<450 ; i++)
{
GridBagConstraints contraintes= new GridBagConstraints();
contraintes.gridx = 30*i;//la position par rapport a l axe des absciss
contraintes.gridy = 15*i;//la position vertical
contraintes.gridwidth = 900;
contraintes.gridheight = 450;
contraintes.fill = 1;//typeElargissement |
contraintes.anchor = 1;//typePosition | PAS COMPRIS
contraintes.ipadx = 1;//etalementHorizontal |
contraintes.ipady = 1;//etalementVertical |
JLabel btn = new JLabel();
btn.setText("");
btn.setPreferredSize(new Dimension(30, 30));
btn.setIcon(new javax.swing.ImageIcon(".\\img\\vide.jpg"));
add(btn);
btn.setVisible(true);
panel.add(btn);
}
}
}
// CHARGER LE FICHIER
// PARSE CHAQUE LIGNE
// MET EN FORME LE TABLEAU de la MAP
static void loadMap(String fic) throws FileNotFoundException{
int ligne; //ligne du tbl de la map
int colonne; //colonne du tbl de la map
String filePath = fic;
Scanner scanner=new Scanner(new File(filePath)); // ????
// On boucle sur chaque champ detecté
ligne = 0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
//ajout tableau
String[] tblTmp = line.split("|",10);
colonne = 0;
for (int i=0 ; i<tblTmp.length ; i++)
{tblMap[ligne][colonne] = tblTmp[i];
colonne = colonne +1;
}
ligne = ligne + 1; // on passe à la ligne suivante
}
scanner.close();
}
static class Jeu extends TimerTask {
private int xTrain; // horizontale
private int yTrain; // verticale
private Icon imgTmp; //image temporaire sur laquelle on va aller
// on actionne le train
public void run(){
// on regarde sur chacun des 4 case a cote
if(xTrain>0){ // si on est pas a gauche
if (yTrain>0 && yTrain<30){ // si on est pas en bordure Haut Bas
if (tblMap[xTrain][yTrain] != ""){
}
}else{
}
}
}
}
// Variables declaration - do not modify
private javax.swing.JButton btnEnd;
private javax.swing.JPanel jPanel;
// End of variables declaration
}
|
|
|
mercredi 14 mai 2008 à 23:00:38 |
Re : Grille dans un Jpanel

ABF
|
Je pense qu'avec la source (projet) sur le site c'est plus clair et avec les couleur de l'IDE
|
|
|
Cette discussion est classé dans : grille, void, jpanel, panel, btn
Répondre à ce message
Sujets en rapport avec ce message
Scroll [ par MELISA ]
Bonjour,Mon pb est le suivant:- je veux inserer un gif dans un JPanel, lui-même contenu dans un autre JPanel (je suis obligée d'utiliser un Panel au l
Changer dynamiquement un JPanel par un autre [ par Angenoir ]
Salut.J'aimerais concevoir une application graphique sympa mais je me heurte à quelques problèmes, mes connaissances en Java étant assez limitées Voil
deplacer glisser [ par lafoune2 ]
voila j'utilise ce morceau de code pour deplacer un jpanel sur un autre jpanel : void this_mouseDragged(MouseEvent e) { this.X += e.getX() - temp
getGraphics + JPanel [ par CHKDSK2K ]
Bonjour voilà mon code import javax.swing.*;import java.awt.Graphics;public class Dessin10{ public static void main (String [] args) { JFrame Fra
pb: Jpanel transparent... [ par tlehoucq ]
Voila g un pti pb, J' ai un panel principal qui contient plusieurs autres panels. J'aimerais que ces panels "fils" restent transparents jusqu'àce que
problème avec JPanel et LayoutManager AU SECOURS [ par seb78 ]
Bonjour,J'ai un JPanel properties dans lequel j'insère deux JPanel property l'un en dessous de l'autre._________| ______ || | | || |__1 _| ||
ajouter un jpanel [ par ptit pimousse ]
Salut tout le monde voilà mon p'tit problème: j'ai deux classes la principale est Ecran extends JFrame avec un panel vide (pour l'instant), il s'appel
Orientation dans un JPanel ou autre... [ par Zart ]
En fait je voulais savoir comment on peut changer l'orientation d'un panel...J'ai déjà essayè avec la méthode setCompenentOrientation mais marche pas.
Pb de raffraichissement dans 2 panel differents [ par Spawnrider ]
Bonjour, je dispose d'une JFrame principal contenant un JPanel Terrain (GridLayout) contenant 150 JPanel Surface representant des carrés de surface. C
Ajout d'un panel d'une classe differente [ par jbebert ]
salutje développe une applet dans laquelle j'ai différents panels. Dans l'un d'entre eux (jPanel_Stat1), je souhaite ajouter un panel (stat1) codée d
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|