java - Is there a way to make JTextField for my address bar larger and curvier -


i'm making browser practice java skills, there way make address bar jtextfield, larger instead of swing's default value , curvier. here's code.

//imports of gui  //import java.awt.*;  //import java.awt.event.*;  //import javax.swing.*;  //import javax.swing.event.*;  //import javax.swing.text.*;  //import javax.swing.grouplayout.*;    //extends use gui class  public class readfile extends jframe { private jtextfield addressbar; //to have address bar  private jeditorpane display;  //display html information  //constructor   //set frame icon image loaded file. public readfile() {     super("sphere"); //name of browser       addressbar = new jtextfield("enter url", 50); //inside url      addressbar.addactionlistener(             new actionlistener(){                 public void actionperformed(actionevent event){                 loadcrap(event.getactioncommand());                 } }      );     add(addressbar, borderlayout.north);        display = new jeditorpane();     display.seteditable(false);     display.addhyperlinklistener(             new hyperlinklistener(){             public void hyperlinkupdate(hyperlinkevent event){             if(event.geteventtype()==hyperlinkevent.eventtype.activated){             loadcrap(event.geturl().tostring());              }             }             }      );     add(new jscrollpane(display), borderlayout.center);     setsize(600,200);     setvisible(true);     }   //load crap display on screen     private void loadcrap(string usertext){     try{display.setpage(usertext);     addressbar.settext(usertext);}catch(exception e){system.out.println("crap!")}     }        }  

i want make usable browser, want html , its' css pages show, else have learn make work.

almost of comes down manipulating border, may not produce results after, example...

bigfield

jtextfield field = new jtextfield(10); field.setborder(new compoundborder(field.getborder(), new emptyborder(10, 0, 10, 0))); 

creating rounded border more difficult...

and curvier

there few ways might achieve, example, create border of own, example...

public class roundedborder extends abstractborder {      @override     public insets getborderinsets(component c, insets insets) {         insets.left = 5;         insets.right = 5;         insets.top = 5;         insets.bottom = 5;          return insets;     }      @override     public void paintborder(component c, graphics g, int x, int y, int width, int height) {         graphics2d g2d = (graphics2d) g.create();         roundrectangle2d shape = new roundrectangle2d.float(0, 0, width - 1, height - 1, 20, 20);         g2d.setcolor(color.black);         g2d.draw(shape);         g2d.dispose();     }  } 

then apply field...

field.setborder(new compoundborder(new roundedborder(), new emptyborder(10, 0, 10, 0))); 

which produces like...

enter image description herenot transparent

but don't this, as, if closely, area outside border still painted...you have border fill area, having ability provide transparent capabilities components, instead, fake it...

fake bordertransparent field

basically, creates custom component can paint around field, but, because can better control painting process, can provide transparency outside border effect...

public class fakeroundedborder extends jpanel {      private jtextfield field;      public fakeroundedborder(jtextfield field) {         this.field = field;         setborder(new emptyborder(5, 5, 5, 5));         field.setborder(new emptyborder(10, 0, 10, 0));         setlayout(new borderlayout());         add(field);         setopaque(false);     }      @override     protected void paintcomponent(graphics g) {         super.paintcomponent(g);         graphics2d g2d = (graphics2d) g.create();         roundrectangle2d shape = new roundrectangle2d.float(0, 0, getwidth() - 1, getheight() - 1, 20, 20);         g2d.setcolor(field.getbackground());         g2d.fill(shape);         g2d.setcolor(color.black);         g2d.draw(shape);         g2d.dispose();     }  } 

this bunch of examples of course, you'll need clean , provide customisation values ;)


Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -