12. august 2003 - 11:34Der er
16 kommentarer og 1 løsning
Flytte rundt på et JPanel
Heysa.
Jeg har oprettet et JPanel, som jeg bruger som baggrund. Inde i dette JPanel, skal jeg tilføje nogle andre JPanels, som hver i sær indeholdeholder noget data, et billede osv. Disse "Under" JPanels, dem skal jeg kunne flytte rundt i det store JPanel, men det kan jeg ikke lige få til at virke. SetLocation virker åbenbart ikke på et JPanel, selvom funktionen findes.
Eller er det noget andet jeg kan bruge i stedet for et Panel? Det behøver nemlig ikke være et panel, bare det er en ting, der kan holde styr på nogle andre elementer, som er placeret i forhold til hinanden inden i den, og derfor flytter med, når man flytter på "panelet".
Det er meningen, at hvert "panel" skal repræsenterer en fodboldspiller, dvs indeholde et lille billede, et tal, et navn osv. Disse spillere, skal man så kunne flytte rundt på banen, sådan drag and drop agtigt.
Hmmm... der må vel være nogen der har prøvet at lave f.eks. en værktøjslinie, som dem i windows, som man kan flytte rundt på i f.eks. word? Men tak for indsatsen Carsten.
Hmmm... ja.. Det ser fornuftigt ud. Men problemet er, at det er jo ikke panelet man trækker rundt på vel? Men en firkant, der skal holdes inden for panelet? Hvis jeg så skal have 22 spillere (paneler) på banen, så giver det vel et problem??
Da du lukkede spørgsmålet, besluttede jeg egentlig ikke at gøre mere ved sagen, men da jeg ikke holdt hvad jeg lovede, nemlig at vende tilbage senere på dagen, så for du alligevel en løsning her.
Løsningen består af 2 classer, 'Stadion' og 'Field', kompiler først 'Field' derefter 'Stadion', køres fra 'Stadion' I bunden af classen 'Field' skal du indsætte stien til en spiller fra hvert hold - spillerne kan flyttes med musen.
Sorry - det tog lidt tid!
public class Stadion extends javax.swing.JFrame {
public Stadion() { initComponents();
b = new javadone.drawing.Field(); jPanel1 = new javax.swing.JPanel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton();
jPanel1.setLayout(new java.awt.GridLayout(15,1));
jButton1.setText("<html>Sæt hold 1<br>på banen</html>"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { b.team1OnField(); b.repaint(); jButton1.setEnabled(false); jButton1.setForeground(java.awt.Color.GRAY); } }); jPanel1.add(jButton1,0);
Beklager jeg ikke har svaret, men ejg har ikke været ved en computer. Grunden til at jeg lukkede emnet, var at jeg valgte at droppe det og lave noget andet. Ellers tak for hjælpen.
Pierre
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.