14. august 2003 - 09:23Der er
12 kommentarer og 1 løsning
Tegne med Java.
Hej. Jeg vil gerne tegne et system ved Java programmering. Systemet skal visualisere et fysisk tank system (ala: http://www.ida.liu.se/~her/npp/demo.html) med nogle tanke og rør der er forbundet til hinanden via ventiler osv.
Jeg vil gerne have det modul opbygget således at jeg eksempelvis har et rør modul, ventil modul osv. Tegningen skal på et senere tidspunkt vises som en applet. Da jeg er ret ny i Java programmering mangler jeg lidt hints til hvorledes jeg skal angribe opgaven evt. understøttet af links til tutorials/kode eksempler. Håber I kan hjælpe mig!!
Jeg ved ikke om du er kommet længere, så jeg har lavet et lille eksempel som kan give dig en ide om hvordan du kan komme videre.
Dette er med en JLabel som du i stedet for at tilføje tekst kan indsætte et billede - det kunne være rør, ventiler etc.
Du kunne jo lave et knappanel bestående af forskellige moduler, gøres nemmest ved at bruge min klasse 'Modul' og så bare initiere 'Modul' med stien til det billede der skal vises.
De 2 klasser kompileres hver for sig.
public class ModulTest extends javax.swing.JFrame {
/** Creates new form ModulTest */ public ModulTest() { initComponents(); modul = new javadone.Modul(); setSize(500,500); show(); jPanel1.add(modul); jPanel1.paintComponents(jPanel1.getGraphics());;
}
private void initComponents() { jPanel1 = new javax.swing.JPanel();
carsten -> Godt eksempel. Men jeg er egentlig mest interesseret i at kunne opbygge systemet i min Grafiske builder -> peger i retningen af at modulerne skal opbygges som Javabeans. Kunne man lave det lille tekst stykke om til en rektangel (så det forestiller et rør) med Graphics klassen og så resize og placere den i min grafiske builder ? .. Vil det være svært ?
Har lavet klassen 'Modul' om så den ligner et rørmodul, modulet kan resizes, når du flytter musen ind på modulet kommer der røde 'håndtag' i hjørnerne og du kan trække i hjørnerne med musen. Røret en kun vandret - så må du selv køre videre herfra. Koden kan sagtens forfines lidt endnu, men jeg GIDER ikke mere.
Brug nedenstående modul i stedet for det forrige.
import java.awt.event.*;
public class Modul extends javax.swing.JLabel {
public Modul() { super(); setBounds(100, 70, 140, 16); mouseListeners(); }
private void mouseListeners(){ addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent evt) { locateMousePositionInLabel(evt); first = true; } });
_carsten -> Alt for fedt at du har brugt så meget tid på det !! Jeg har desværre ikke mulighed for at teste din kode i weekenden men glæder mig meget til at testen den mandag .. Vender tilbage der !!
Det ser godt ud _carsten. Der er helt klart noget inspiration til mig. Du løber med pointene. Hvis jeg nu anvende rør stykket i min grafiske builder (netbeans eller jbuilder) har du så nogle hints til hvorledes man gør det ?
Kender ikke meget til JBuilder, men i netbeans kan bare bruge 'Add to Palette' så ligger den i paletten sammen med de andre så som JTextField, JLabel etc.
1. Højreklik på classen 'Modul' 2. Vælg 'Tools' 3. 'Add To Component Palette' 4. Vælg Palette 5. OK
Så kan du trække den ned på samme måde som med en JLabel
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.