Big problème sociologique [Java] [applet] - Java - Programmation
Marsh Posté le 02-03-2004 à 14:36:16
on a réussi à faire une applet qui lance le prog mais c pas tout à fait ça kon veut
Marsh Posté le 02-03-2004 à 16:56:24
Bon je vais préciser mes questions :
-Y a t-il que TestDND qu'il faut modifier pour que le programme deviennnent une applet?
-Quels sont les arguments à passer dans le html dans TestDND?
pleaze
Marsh Posté le 02-03-2004 à 17:33:42
1) oui, dans la mesure où l'on oublie l'aspect sécurité.
2) rien ne t'oblige à en passer, si tu en avait pas dans l'application, rien ne te force à en passer dans l'applet
Sinon, je voulais te répondre, mais j'arrivais pas à accéder au site de sun pour les javadocs (AOL 56k).
Sinon, je voulais te dire que je suis un grand fan, et que j'adore toutes tes chansons, surtout les versions allemandes et italiennes (comme Gigi l'amoroso en italien par ex).
Marsh Posté le 02-03-2004 à 20:01:36
Je crois(j'espère) que ça a avancé.
Au fait il faut tout compiler d'un coup pr que ça fonctionne
Bon, maintenant, je fais ouvrir la jframe dans le navigateur et plus en dehors, seul pb, l'applet ne se lançe plus
Help
(oui c surement pas propre du tout vu que j'avais jamais touché au java )
----------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestDND extends JApplet
{
public static void main (String args[]) {
TestDND testDND = new TestDND();
}
/**
* constructeur
* créer l'encadrement, les listes et mettre les données dans les listes
*/
public void init()
{ JApplet testDND = new JApplet();
JFrame f = new JFrame("Drag and Drop Test" );
testDND.getContentPane().add(f);
DNDList sourceList = new DNDList();
testDND.init();
testDND.start();
// Ajouter des données à la Liste source
DefaultListModel sourceModel = new DefaultListModel();
sourceModel.addElement( "Japonais" );
sourceModel.addElement( "Chinois" );
sourceModel.addElement( "Italien" );
sourceModel.addElement( "Espagnol" );
sourceModel.addElement( "Indien" );
sourceModel.addElement( "Russe" );
sourceModel.addElement( "Français" );
sourceModel.addElement( "Libanais" );
// gets the panel with the List and a heading for the List
JPanel sourcePanel = getListPanel(sourceList, "Type de restaurant", sourceModel);
DNDList targetList1 = new DNDList();
// Ajouter des données à la Liste cible 1
DefaultListModel targetModel1 = new DefaultListModel();
JPanel targetPanel1 = getListPanel(targetList1, "Cible1", targetModel1);
DNDList targetList2 = new DNDList();
// Ajouter des données à la Liste cible 2
DefaultListModel targetModel2 = new DefaultListModel();
JPanel targetPanel2 = getListPanel(targetList2, "Cible2", targetModel2);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
mainPanel.add( sourcePanel );
mainPanel.add( targetPanel1 );
mainPanel.add( targetPanel2 );
f.getContentPane().add( mainPanel );
f.setSize (500, 500);
f.addWindowListener (new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setVisible (true);
}
/**
* méthode de convenance
* utilisé pour positionner la Liste et l'Étiquette.
*
* @param list
* @param labelName
* @param listModel
*/
private JPanel getListPanel(DNDList list, String labelName, DefaultListModel listModel ){
JPanel listPanel = new JPanel();
JScrollPane scrollPane = new JScrollPane(list);
list.setModel(listModel);
JLabel nameListName = new JLabel(labelName );
listPanel.setLayout( new BorderLayout());
listPanel.add(nameListName, BorderLayout.NORTH);
listPanel.add( scrollPane, BorderLayout.CENTER);
return listPanel;
}
}
Marsh Posté le 02-03-2004 à 20:04:22
nraynaud a écrit : 1) oui, dans la mesure où l'on oublie l'aspect sécurité. |
MERCI
Marsh Posté le 03-03-2004 à 01:39:30
Citation : java.lang.IllegalArgumentException: adding a window to a container |
Marsh Posté le 03-03-2004 à 07:48:59
moi je suis d'accord avec lui, tu n'arriveras pas à mettre une fenêtre dans un container.
Marsh Posté le 03-03-2004 à 22:41:44
la ya plus de message derreur mais ca marche plus évidemment. Un jpanel ça peut se mettre dans une applet?
---------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestDND extends JApplet
{
/**
* constructeur
* créer l'encadrement, les listes et mettre les données dans les listes
*/
public void init()
{ JPanel mainPanel = new JPanel();
JApplet testDND = new JApplet();
testDND.getContentPane().add(mainPanel);
DNDList sourceList = new DNDList();
// Ajouter des données à la Liste source
DefaultListModel sourceModel = new DefaultListModel();
sourceModel.addElement( "Japonais" );
sourceModel.addElement( "Chinois" );
sourceModel.addElement( "Italien" );
sourceModel.addElement( "Espagnol" );
sourceModel.addElement( "Indien" );
sourceModel.addElement( "Russe" );
sourceModel.addElement( "Français" );
sourceModel.addElement( "Libanais" );
// gets the panel with the List and a heading for the List
JPanel sourcePanel = getListPanel(sourceList, "Type de restaurant", sourceModel);
DNDList targetList1 = new DNDList();
// Ajouter des données à la Liste cible 1
DefaultListModel targetModel1 = new DefaultListModel();
JPanel targetPanel1 = getListPanel(targetList1, "Cible1", targetModel1);
DNDList targetList2 = new DNDList();
// Ajouter des données à la Liste cible 2
DefaultListModel targetModel2 = new DefaultListModel();
JPanel targetPanel2 = getListPanel(targetList2, "Cible2", targetModel2);
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
mainPanel.add( sourcePanel );
mainPanel.add( targetPanel1 );
mainPanel.add( targetPanel2 );
}
/**
* méthode de convenance
* utilisé pour positionner la Liste et l'Étiquette.
*
* @param list
* @param labelName
* @param listModel
*/
private JPanel getListPanel(DNDList list, String labelName, DefaultListModel listModel ){
JPanel listPanel = new JPanel();
JScrollPane scrollPane = new JScrollPane(list);
list.setModel(listModel);
JLabel nameListName = new JLabel(labelName );
listPanel.setLayout( new BorderLayout());
listPanel.add(nameListName, BorderLayout.NORTH);
listPanel.add( scrollPane, BorderLayout.CENTER);
listPanel.setVisible (true);
return listPanel;
}
}
Marsh Posté le 02-03-2004 à 14:34:37
Si y a un dieu sur terre j'ai besoin de son intervention.
Voilà, je suis en 2nd année de dut src, on a un projet d'agence à finir pour dans 1mois et le mec qui devait faire le java dans le projet a réussi à trouver ça en 6mois et n'a rien foutu de l'année sinon. Je ne m'étais pas inquiéter jusqu'à présent car il disait qu'il allait s'y mettre à chaque fois et finalement ben à 30jours de la fin du projet il lâche l'affaire, c'est super
Comme je devais uniquement m'occuper de la base de donnée et du site dans le projet je n'ai pas touché au java de l'année et je me retrouve face au mur à présent. Je me sens seul, désespérer et inapte à engloutir java.sun.com en 2semaines. Mon agence déprime, mon pote fait le mort.
Le problème est le suivant : Je dois passer ce programme en applet. C'est l'objectif n°1. Après, mais je pense pouvoir me démerder facilement pour ça, faut que les données proviennent de la db mysql, et les mettent à jour lorsque l'on les drop dans un emplacement. En gros, une colonne pour définir ce que le profil de l'utilisateur aime et l'autre pour ce qu'il n'aime pas. M'enfin bon, pour l'instant, si je peux avoir un soupçon d'aide pour l'objectif n°1 ce sera un grand pas pour l'agence.
Faut savoir que y a deux autres applets que l'on doit faire après cela, et pas des petites du tout. Un agenda de sorties avec localisation et calendrier et, plus simple des séquences d'images défilantes aléatoire sur une fausse pellicule qui reprenne de l'image ou l'on quitte la page sur la page suivante. plus plein de petits trucs plutôt simple. Et puis en attendant j'ai toujours ma partie à gérer dans le projet, qui ne peut être terminer sans ces applets
A votre bon coeur, pour sauver une dame en détresse
Le prog se lançe avec java TestDND (le premier quoi)
Si vous m'aidez, vous pourrez voir notre super zouli projet dans un mois et j'hésiterais pas à balancer des crédits dans les remerciements (corruption inside)
------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestDND
{
public static void main (String args[]) {
TestDND testDND = new TestDND();
}
/**
* constructeur
* créer l'encadrement, les listes et mettre les données dans les listes
*/
public TestDND()
{
JFrame f = new JFrame("Drag and Drop Test" );
DNDList sourceList = new DNDList();
// Ajouter des données à la Liste source
DefaultListModel sourceModel = new DefaultListModel();
sourceModel.addElement( "Japonais" );
sourceModel.addElement( "Chinois" );
sourceModel.addElement( "Italien" );
sourceModel.addElement( "Espagnol" );
sourceModel.addElement( "Indien" );
sourceModel.addElement( "Russe" );
sourceModel.addElement( "Français" );
sourceModel.addElement( "Libanais" );
// gets the panel with the List and a heading for the List
JPanel sourcePanel = getListPanel(sourceList, "Type de restaurant", sourceModel);
DNDList targetList1 = new DNDList();
// Ajouter des données à la Liste cible 1
DefaultListModel targetModel1 = new DefaultListModel();
JPanel targetPanel1 = getListPanel(targetList1, "Cible1", targetModel1);
DNDList targetList2 = new DNDList();
// Ajouter des données à la Liste cible 2
DefaultListModel targetModel2 = new DefaultListModel();
JPanel targetPanel2 = getListPanel(targetList2, "Cible2", targetModel2);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
mainPanel.add( sourcePanel );
mainPanel.add( targetPanel1 );
mainPanel.add( targetPanel2 );
f.getContentPane().add( mainPanel );
f.setSize (600, 600);
f.addWindowListener (new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setVisible (true);
}
/**
* méthode de convenance
* utilisé pour positionner la Liste et l'Étiquette.
*
* @param list
* @param labelName
* @param listModel
*/
private JPanel getListPanel(DNDList list, String labelName, DefaultListModel listModel ){
JPanel listPanel = new JPanel();
JScrollPane scrollPane = new JScrollPane(list);
list.setModel(listModel);
JLabel nameListName = new JLabel(labelName );
listPanel.setLayout( new BorderLayout());
listPanel.add(nameListName, BorderLayout.NORTH);
listPanel.add( scrollPane, BorderLayout.CENTER);
return listPanel;
}
}
-------------------------------------------------------------------
/**
* This is an example of a component, which serves as a DragSource as
* well as Drop Target.
* To illustrate the concept, JList has been used as a droppable target
* and a draggable source.
* Any component can be used instead of a JList.
* The code also contains debugging messages which can be used for
* diagnostics and understanding the flow of events.
*
* @version 1.0
*/
import java.awt.*;
import java.awt.dnd.*;
import java.awt.datatransfer.*;
import java.util.Hashtable;
import java.util.List;
import java.util.Iterator;
import java.io.*;
import java.io.IOException;
import javax.swing.JList;
import javax.swing.DefaultListModel;
public class DNDList extends JList
implements DNDComponentInterface, DropTargetListener,DragSourceListener, DragGestureListener {
//Permet à ce composant d'être un dropTarget
DropTarget dropTarget = null;
//Permet à ce composant d'être un dragSource
DragSource dragSource = null;
//constructeur - Initialise le DropTarget et DragSource.
public DNDList() {
dropTarget = new DropTarget (this, this);
dragSource = new DragSource();
dragSource.createDefaultDragGestureRecognizer( this, DnDConstants.ACTION_MOVE, this);
}
//Est invoqué quand vous traînez sur le DropSite
public void dragEnter (DropTargetDragEvent event) {
// Messages de mise au point pour diagnostic
System.out.println( "dragEnter" );
event.acceptDrag (DnDConstants.ACTION_MOVE);
}
//Est invoqué quand vous êtes la sortie le DropSite sans baisse(omission)
public void dragExit (DropTargetEvent event) {
System.out.println( "dragExit" );
}
/**
* is invoked when a drag operation is going on
*
*/
public void dragOver (DropTargetDragEvent event) {
System.out.println( "dragOver" );
}
/**
* a drop has occurred
*
*/
public void drop (DropTargetDropEvent event) {
try {
Transferable transferable = event.getTransferable();
// we accept only Strings
if (transferable.isDataFlavorSupported (DataFlavor.stringFlavor)){
event.acceptDrop(DnDConstants.ACTION_MOVE);
String s = (String)transferable.getTransferData ( DataFlavor.stringFlavor);
addElement( s );
event.getDropTargetContext().dropComplete(true);
}
else{
event.rejectDrop();
}
}
catch (IOException exception) {
exception.printStackTrace();
System.err.println( "Exception" + exception.getMessage());
event.rejectDrop();
}
catch (UnsupportedFlavorException ufException ) {
ufException.printStackTrace();
System.err.println( "Exception" + ufException.getMessage());
event.rejectDrop();
}
}
/**
* is invoked if the use modifies the current drop gesture
*
*/
public void dropActionChanged ( DropTargetDragEvent event ) {
}
/**
* a drag gesture has been initiated
*
*/
public void dragGestureRecognized( DragGestureEvent event) {
Object selected = getSelectedValue();
if ( selected != null ){
StringSelection text = new StringSelection( selected.toString());
// as the name suggests, starts the dragging
dragSource.startDrag (event, DragSource.DefaultMoveDrop, text, this);
} else {
System.out.println( "nothing was selected" );
}
}
/**
* this message goes to DragSourceListener, informing it that the dragging
* has ended
*
*/
public void dragDropEnd (DragSourceDropEvent event) {
if ( event.getDropSuccess()){
removeElement();
}
}
/**
* this message goes to DragSourceListener, informing it that the dragging
* has entered the DropSite
*
*/
public void dragEnter (DragSourceDragEvent event) {
System.out.println( " dragEnter" );
}
/**
* this message goes to DragSourceListener, informing it that the dragging
* has exited the DropSite
*
*/
public void dragExit (DragSourceEvent event) {
System.out.println( "dragExit" );
}
/**
* this message goes to DragSourceListener, informing it that the dragging is currently
* ocurring over the DropSite
*
*/
public void dragOver (DragSourceDragEvent event) {
System.out.println( "dragExit" );
}
/**
* is invoked when the user changes the dropAction
*
*/
public void dropActionChanged ( DragSourceDragEvent event) {
System.out.println( "dropActionChanged" );
}
/**
* adds elements to itself
*
*/
public void addElement( Object s ){
(( DefaultListModel )getModel()).addElement (s.toString());
}
/**
* removes an element from itself
*/
public void removeElement(){
(( DefaultListModel)getModel()).removeElement( getSelectedValue());
}
}
-------------------------------------------------------------------
public interface DNDComponentInterface{
public void addElement( Object s);
public void removeElement();
}