Avatar billede p_gaard Juniormester
01. marts 2007 - 15:56 Der er 7 kommentarer og
2 løsninger

Runde hjørner på JPanel

Hej,

Er der en som kan forklare hvorledes jeg kan implementere følgende kode i mine apletter, således at jeg kan anvende den på diverse panes og evt knapper. Jeg vil gerne bevare koden i sin egen klasse adskilt fra mine egne.


Jeg har forsøgt i en applet at på et jpane at skrive:

pane.setBorder(new OvalBorder(10,10))

må konkludere at et OvalBorder object klassen ikke umiddelbart kan passes ind i et JPane. øv....

Jeg synes OvalBorder eksemplets kant er smuk.


-------------------


//package drawing;

import javax.swing.JApplet;
import javax.swing.JPanel;

import java.applet.*;
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.Image;
import java.util.*;
import java.awt.BorderLayout;
import javax.swing.*;


import java.awt.* ;
import javax.swing.*;
import javax.swing.border.* ;

public class applet_receiveData extends JApplet {

            public TextArea TextArea1 = new TextArea();
       
            Button Button1 = new Button();
            Label lab = new Label();
            Choice Choice1=new Choice();
            Choice Choice2=new Choice();
       
            Image image;
            Graphics g;
       
            String sqlstr_obs="";
            String sqlstr_ship="";
           
            ArrayList<mapPoint> arrlst_points;
            ArrayList<container_ship> arrlst_ship;
       
            String sumstr;
            String tmp;
       
            funktioner fn=new funktioner();
            StringWriter sw=new StringWriter();
       
            drawingJPanell djp = new drawingJPanell(arrlst_points,sw);
            GridBagLayout gblay=new GridBagLayout();
           
           

           
   
   
    public void init ()
    {

       
            BorderLayout BorderLayout1 = new BorderLayout();
            JPanel pane=new JPanel();



            pane.setBorder ( new BevelBorder ( BevelBorder.LOWERED ) ) ;
            pane.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));


           
            pane.setLayout(gblay);
            pane.setPreferredSize(new Dimension((int) (this.getWidth()*0.16), this.HEIGHT));

           
            pane.setBackground(Color.gray);
           
       


           
            GridBagConstraints c = new GridBagConstraints();
            c.fill = GridBagConstraints.VERTICAL;

           
           
            image = this.getImage(this.getCodeBase(), "smallmap.jpg");

            c.gridx = 0;
            c.gridy = 0;
            Choice1.setPreferredSize(new Dimension((int) (this.getWidth()*0.13),50));
            Choice1.add("Angiv år - måned");
            Choice1.add("Sidste måned");
           
           
   
            for (int q=2; q<=12; q++)
            {
                Choice1.add("Sidste " + q + " måneder");
            }
   
            Choice1.add("Hele sidste år");
   
            for (int q=0; q<fn.montharr(13).size(); q++)
            {
                Choice1.add(fn.montharr(13).get(q).toString());
            }

            pane.add(Choice1, c);
           
            c.gridx = 0;
            c.gridy = 1;
            Choice2.setPreferredSize(new Dimension((int) (this.getWidth()*0.13),50));
            Choice2.add("Samtlige skibe");
            pane.add(Choice2, c);

           
            c.gridx = 0;
            c.gridy = 2;
            Button1.setLabel("Open");
            pane.add(Button1, c);
            Button1.setPreferredSize(new Dimension((int) (this.getWidth()*0.13),50));

           
            c.gridx = 0;
            c.gridy = 3;
            lab.setText("");
            pane.add(lab, c);
            lab.setPreferredSize(new Dimension((int) (this.getWidth()*0.13),500));
           
           
           

            this.setBackground(new Color(255,255,255));
            this.setLayout(BorderLayout1);
   
            //djp.add(TextArea1);
           
            this.add("Center", djp);
            this.add("East", pane);
           
            //this.repaint();
   
            //this.requestFocus();
           
            djp.setArrlst_points(arrlst_points, image);
            repaint();
           


    }

    public boolean action(Event evt, Object arg) {
       



        getData g=new getData();   
        //TextArea1.setText(evt.toString() + "\n" + Choice1.getItem(Choice1.getSelectedIndex()) + "\n" + evt.toString().contains(Choice1.getItem(Choice1.getSelectedIndex())));


        try {
           
            if (evt.toString().contains(Choice1.getItem(Choice1.getSelectedIndex())))
            {

                arrlst_ship = (ArrayList<container_ship>) g.getData("getships", getArgList("getships"), getCodeBase());
                djp.setArrlst_points(arrlst_points, image);
                repaint();
   
                Choice2.removeAll();
                Choice2.setVisible(false);
   
                Choice2.add("Samtlige skibe");
                tmp="";
               
                for (container_ship cont:arrlst_ship)
                {
   
                    if (! tmp.contains(cont.callsign))
                    {
                        Choice2.add((cont.callsign + "            ").substring(0,10)+ cont.name);
                        tmp=tmp+cont.callsign;
                    }
                }

                Choice2.setVisible(true);
               
            }
           





            if (arg.equals("Open"))
            {
                arrlst_points = (ArrayList<mapPoint>) g.getData("getobs", getArgList("getobs"), getCodeBase());
                djp.setArrlst_points(arrlst_points, image);
                repaint();
               
            }
   
        }
        catch (Exception e)
        {
          TextArea1.setText(e.fillInStackTrace().toString());
        }

        return true;       
    }
   


    public void paint(Graphics g){


        super.paint(g);
        repaint();



    }
   
   
    public ArrayList getArgList(String whattoreturn)
    {
       
        ArrayList arglist=new ArrayList();

        int indx=Choice1.getSelectedIndex();
        String item =Choice1.getSelectedItem();
        String ship=Choice2.getSelectedItem().split(" ")[0].replace("Samtlige", "%")
        .replace("XP4210","XP421").replace("OZ2048","OZ204");

        arglist.add(fn.getSqlString(indx, item, ship).get(0));
        arglist.add(fn.getSqlString(indx, item, ship).get(1));
        arglist.add(whattoreturn);

       
        return arglist;

    }







}
Avatar billede robotten Praktikant
02. marts 2007 - 11:42 #1
Luk her igen, så :)
Avatar billede robotten Praktikant
05. marts 2007 - 10:32 #2
?
Avatar billede robotten Praktikant
12. marts 2007 - 11:19 #3
:(
Avatar billede robotten Praktikant
18. marts 2007 - 09:36 #4
Avatar billede p_gaard Juniormester
18. marts 2007 - 10:41 #5
Jeg accepterer. Ofte svarer folk p&#229; ens sp&#248;rgsm&#229;l med en kommentar og muligheden accepter eller afvis dukker ikke frem. Jeg mener at muligheden kommentar nok er lidt overfl&#248;dig.
Avatar billede robotten Praktikant
18. marts 2007 - 14:12 #6
Ja. Der har været meget debat om dette. I den nye version af eksperten der er undervejs, skulle der være tænkt på dette.
Avatar billede p_gaard Juniormester
19. marts 2007 - 13:35 #7
Nu er jeg nået så langt så jeg har fået øje på den 'hemmelige' mulighed for at markere. Jeg synes ikke at dette felt til venstre for accepterknappen lever op til standarderne for en liste hvor der kan markeres. Måske skulle man havde brugt en listbox med fast højde på f.eks. 5 rækker hvor et af navnene er markeret som standard.
Og... Nu mens jeg skriver dette svar forvirer det mig om ovenstående accepterknap er i stand til at sende dette svar med accept eller om den kun kan accepterer svar "10:41:32".
Måske skulle der udover en send knap være en "Send med accept" således at man ikke først skal sende og siden acceptere sit eget svar. Der er sikkert mange folk som glemmer det og det betyder en masse dialoger som aldrig bliver afsluttede.
Avatar billede robotten Praktikant
19. marts 2007 - 13:38 #8
Dine forslg, kan du skrive under Eksperten - forslag kategorien.
Avatar billede p_gaard Juniormester
19. marts 2007 - 14:19 #9
ok
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester