12. oktober 2003 - 13:17Der er
18 kommentarer og 1 løsning
Løsningsforslag til program?
Er der nogen, der kan komme med et kvalificeret bud på følgende:
Der skal laves et program, som vha. borderlayout tegner tre labels - north, center og south - med tekst i center og to farvede firkanter i både north og south.
Ah, jeg glemte nok at definere, at der skal tegnes to eksplicitte firkanter i hvert af de to labels north og south, og at firkanterne skal være forskellig farve... det er ikke bare labels, der skal "udfyldes".
public class Simple extends JFrame { public Simple() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); getContentPane().setLayout(new BorderLayout()); JPanel p1 = new MyBox(0,0,50,50); p1.setForeground(Color.red); getContentPane().add(p1, BorderLayout.NORTH); JLabel lbl2 = new JLabel("tekst"); getContentPane().add(lbl2, BorderLayout.CENTER); JPanel p3 = new MyBox(0,0,50,50); p3.setForeground(Color.blue); getContentPane().add(p3, BorderLayout.SOUTH); pack(); } public static void main(String[] args) { Simple f = new Simple(); f.show(); } }
class MyBox extends JPanel { private int x,y,w,h; public MyBox(int x, int y, int w, int h) { this.x = x; this.y = y; this.w = w; this.h = h; } public void paintComponent(Graphics g) { g.fillRect(x,y,w,h); } }
Hmm, der er vist et par ting, jeg ikke har helt styr på... Hvad er fx JFrame? Hvis nu jeg istedet ville lave tre cirkler i forskellige farver i hhv. west og east, men stadig med tekst i center, hvordan ville det se ud? Jeg har en ide om det, men jeg kan ikke rigtig få konstrueret det. Mit umiddelbare bud ville være med en hovedklasse, som styrer layout og komponenter, og så en subklasse, der tegner de tre cirkler, men hvordan præcist er jeg ikke sikker på... Tak igen igen
Arne har egentlig sagt det - godt nok er historien væsentlig længere, hvilket indbærer at du nok skal have gang i nogle tutorials vedrørende Swing, men for at give et indtryk af hvordan det kunne laves, for du her nogle ændringer/tilføjelser til mit tidligere eksempel.
Erstat nedenstående metode i Frame klassen
private void initComponents(){ label1 = new MyLabel(Color.green, Color.yellow, "NORTH"); label2 = new MyLabel(Color.lightGray, Color.lightGray, "CENTER"); label3 = new MyCircleLabel(Color.red, Color.blue, "SOUTH");
Hæ, siden mit sidste indlæg har jeg faktisk fået nogenlunde styr på det... Jeg fandt selv frem til ovenstående sider... Og ja, jeg var sprunget for langt frem, og det skyldtes sådan set både egne ambitioner, og så at jeg mere eller mindre "fór vild" på suns website... Det er ikke den mest overskuelige side de har lavet. Lidt synd egentlig, for deres tutorial er uden tvivl rigtig god...
Det er i java på samme måde som med banklån og forsikringer etc.
LÆS OGSÅ DET DER STÅR MED SMÅT ! :-) :-)
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.