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;
}
}
