[java] border removen JSplitPane

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik loop nu al een halve dag te zoeken hoe ik de borders kan verwijderen bij een JSplitPane. Een JSplitPane heeft een border om zich heen, heeft een border voor de devider, en heeft heeft 2 borders getekend om de 2 componenten die in hem zitten. Het gaat me om die laatste border. Ik heb al van alles geprobeerd en zelfs bij de plaf zitten knoeien, maar tot zover helaas geen resultaat.

hier is trouwens een voorbeeld van hoe ik het wil hebben:

Afbeeldingslocatie: http://www.jgoodies.com/freeware/skeleton/images/skeleton.jpg De navigatorpanel en de general-project-data-panel zitten dus samen op een splitpane, en je kan ze ook gewoon resizen.

[edit]
Dat componentje met die blauwe rand en die shadowdrop heb ik al nagemaakt (hij tenslotte ook, want het is een eclipse component) en die komt binnenkort gratis op mijn site te staan. Verder heb ik nog een jdesktoppane aangepast zodat als een window zich echt maximized, dat je volledig van die vervelende rotborders afbent.

[edit2]
Ik heb per ongeluk JScrollPane geschreven ipv JSplitPane

[ Voor 26% gewijzigd door Alarmnummer op 21-07-2003 10:51 ]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Viewport border al geprobeerd?
To add a border around the main viewport, you can use setViewportBorder. (Of course, you can also add a border around the whole scroll pane using setBorder.)

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Hmm.. alleen een JScrollPane heeft toch een viewport?

[edit]
oeps.. ik zie dat ik een fout heb gemaakt. Het gaat om de JSplitpane.

[ Voor 44% gewijzigd door Alarmnummer op 21-07-2003 10:52 ]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik zou zweren dat er net JScrollPane stond :P .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Wat voor border is het? Is het echt een lijntje oid of is het een lege border? (in welk geval het misschien geen border is ...)

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
tja.. als ik eerlijk ben weet ik dat ook niet zeker. Zo gauw je bij het plaf gedeelte aankomt, dan begint het nogal snel voor je ogen te duizelen.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Titel veranderd.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Als ik het goed begrijp wil je dus helemaal geen borders zien?

Waarom gooi je niet twee panels op je splitpane met een empty border?

Java:
1
2
3
4
5
jSplitPane.add(jPanelOne, JSplitPane.LEFT);
jSplitPane.add(jPanelTwo, JSplitPane.RIGHT);
jSplitPane.setBorder(new EmptyBorder(0, 0, 0, 0));
jPanelOne.setBorder(new EmptyBorder(0, 0, 0, 0));
jPanelTwo.setBorder(new EmptyBorder(0, 0, 0, 0));


Zo krijg ik in ieder geval geen borders te zien. Wel een irritante divider met lelijke bumps :(

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik heb net een mailtje terug gekregen van Karsten Lentzsch van JGoodies.
Hi Peter,

If you've removed the divider border you're almost done;
just set the split pane's border to an EmptyBorder instance.

In addition you may want to ensure that the split pane's
child components don't have a border - or at least have
a border that is appropriate for nested components.

In my Metamorphosis demo you can see the following
different border types: default, flat, drop shadow.

> I know you make a living from writing software,
> so therefor it would be strange to give your work away,
> but could you give me a hint?

Actually some people appreciate my assistance and
come back later and license products.

Best regards,
Ik moet het thuis even testen, maar ik vind het zo vreemd dat ik borders bij die components moet verwijderen. Stel dat ik er 2 panels in plaats (die dus alleen een empty border hebben), dan krijg ik nog steeds zo`n verlaging.

Bij een component (namelijk die panel met die blauwe titel fade die je bovenaan ook ziet staan), heb ik zelf al een border erom geplakt. Dit is een compound border bestaande uit een shadowdrop border aan de binnenkant, en een empty border aan de buiten kant. Het lijkt me stug dat ik hier nog meer aan moet sluitelen om het goed te krijgen.

[edit]
ik zal nog even proberen om de border in te stellen nadat de componenten op de jsplitpane zijn toegevoegd. Misschien dat de splitpane stiekum toch borders aan componenten loopt te plakken.

[ Voor 28% gewijzigd door Alarmnummer op 22-07-2003 10:18 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
[quote]Verwijderd schreef op 21 juli 2003 @ 15:38:
Als ik het goed begrijp wil je dus helemaal geen borders zien?

Waarom gooi je niet twee panels op je splitpane met een empty border?
[quote]
Ik ga het zometeen ff proberen
Zo krijg ik in ieder geval geen borders te zien. Wel een irritante divider met lelijke bumps :(
Misschien dat jij hier dan iets aan hebt :)

BasicSplitPaneUI ui = (BasicSplitPaneUI) splitPane.getUI();
ui.getDivider().setBorder(new EmptyBorder(0, 0, 0, 0));

Dit is trouwens niet helemaal correct omdat je met getUI ook iets anders terug kan krijgen dan BasicSplitPaneUI. Je moet het dus doen onder voorwaarde

Verwijderd

Alarmnummer schreef op 22 July 2003 @ 10:28:

Misschien dat jij hier dan iets aan hebt :)

BasicSplitPaneUI ui = (BasicSplitPaneUI) splitPane.getUI();
ui.getDivider().setBorder(new EmptyBorder(0, 0, 0, 0));

Dit is trouwens niet helemaal correct omdat je met getUI ook iets anders terug kan krijgen dan BasicSplitPaneUI. Je moet het dus doen onder voorwaarde
Hmm..... dat haalt niets uit. Ik kan de divider wel een dikte van 0 geven maar dat is zo moeilijk sizen ;-) Ik denk dat de paint methode van de divider moet worden ge-override (?!).

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Woow. Thanks Alarmnummer ik wist niet dat deze bestond! Scheelt me weer tijd om het zelf te maken (was er al mee bezig ;)) gaan we maar verder met de Java versie van me navigationbar.

Verwijderd

Ik heb net door dat in de Windows LookAndFeel die bumps niet zichtbaar zijn! Met onderstaande code:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Test extends JFrame {
  JSplitPane splitPane = new JSplitPane();
  JPanel panel1 = new JPanel();
  JPanel panel2 = new JPanel();

  public Test() {
    this.getContentPane().setLayout(null);
    this.setSize(410, 330);
    splitPane.setBounds(new Rectangle(50, 50, 300, 200));
    this.getContentPane().add(splitPane, null);
    splitPane.add(panel1, JSplitPane.LEFT);
    splitPane.add(panel2, JSplitPane.RIGHT);
    splitPane.setBorder(new EmptyBorder(0, 0, 0, 0));
    panel1.setBorder(new BevelBorder(BevelBorder.RAISED));
    panel2.setBorder(new BevelBorder(BevelBorder.RAISED));

    BasicSplitPaneUI ui = (BasicSplitPaneUI) splitPane.getUI();
    ui.getDivider().setBorder(new EmptyBorder(0, 0, 0, 0));

    this.show();
  }


krijg ik dit plaatje:

Afbeeldingslocatie: http://www.fmf.nl/~hendri/JSplitPane.PNG

Daar moeten we toch wat mee kunnen ;)

edit:

[quote]alienfruit schreef op 22 July 2003 @ 11:24:
Woow. Thanks Alarmnummer ik wist niet dat deze bestond! Scheelt me weer tijd om het zelf te maken (was er al mee bezig ;)) gaan we maar verder met de Java versie van me navigationbar.[/quote]

Je wist niet dat een JSplitPane bestond :? |:(


edit:
2
Damn, een quote-tag in een edit-tag gaat nie goed.

[ Voor 18% gewijzigd door Verwijderd op 22-07-2003 11:36 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Het werk intussen en ziet er superstrak uit. Je moet de SplitPane zijn border vervangen door een empty border.

vb

Java:
1
2
3
4
JSplitPane splitPane = new JSplitPane(...);
splitPane.setBorder(BorderFactory.createEmptyBorder());
BasicSplitPaneUI ui = (BasicSplitPaneUI) splitPane.getUI();
ui.getDivider().setBorder(new EmptyBorder(0, 0, 0, 0));


Ik raad trouwens iedereen aan om eens naar looks van JGoodies te kijken. Als je die demo start moet je even windows extended look and feel aanschakelen en bij de clearlook tabblad (van de opstart applicatie) ClearLook even aanschakelen. Je ziet dan een hele lading onnodige borders ed verdwijnen bij de testapplicatie

[edit]
nu met plaatjes met dank aan GijsJ

standaard internal frame maximize
Afbeeldingslocatie: http://home.wanadoo.nl/gijsjan/Pics/shot2.jpg

zoals het hoort maximize van internal frame.
Afbeeldingslocatie: http://home.wanadoo.nl/gijsjan/Pics/shot1.jpg

Die gradient lijkt hier wat streperig, maar dit komt omdat de kleuren hier vrij laag staan. En verder is die balk nog iets te dik, maar op de een of andere manier heb ik het nog niet voor elkaar gekregen om die panel wat minder interne ruimte te laten reserveren. Als je die butten eruit haalt, dan ziet het er wel normaal uit.

[ Voor 40% gewijzigd door Alarmnummer op 23-07-2003 12:38 ]


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Ja, Ik ken die JGoodies ding nog niet nee. Toch eens kijken of er nog sites zijn voor java componenten a la torry.net. Scheelt me weer dingen porten van Delphi naar Java.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
alienfruit schreef op 23 juli 2003 @ 14:14:
Ja, Ik ken die JGoodies ding nog niet nee. Toch eens kijken of er nog sites zijn voor java componenten a la torry.net. Scheelt me weer dingen porten van Delphi naar Java.
www.jars.com staan vrij veel

en op javalobby en jsurfer staan ook regelmatig berichtjes over nieuwe (soms superdure!!! ) componenten. Maar die JSplitPane is er echt een die standaard bij java zit :)

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Ja. Thanks Alarmnummer :)
Tja, ik maak niet zoveel interfaces in Java :X

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
alienfruit schreef op 24 July 2003 @ 10:41:
Ja. Thanks Alarmnummer :)
Tja, ik maak niet zoveel interfaces in Java :X
Ik vind gui schrijven in java zeker niet vervelend hoor. Tov Delphi vind ik Swing echt een verademing, alleen jammer dat het zo langzaam is.

ps:
heb jij in delphi wel eens een model gezien? :D

[ Voor 10% gewijzigd door Alarmnummer op 24-07-2003 10:57 ]


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Huh. Model wat is dat? :D Maar de opbouw van VCL vind ik nog best duidelijk je moet gewoon effe alle standaard prut wegkieperen en meteen je eigen controls maken vanaf TWinControl of TCustomControl.

Ja, Ik vind swing toch nog behoorlijk traag, gebruik java eigenlijk ook meer voor server doeleinden dan de client gedeelte. Ben nu wel bezig met een beheerprogramma dat gaat draaien onder Java. Zit momenteel wel te dubben of ik me volgende project nog wel in Java ga maken of in .NET...

[ Voor 91% gewijzigd door alienfruit op 24-07-2003 11:15 ]


Verwijderd

Alarmnummer schreef op 23 juli 2003 @ 12:12:

Ik raad trouwens iedereen aan om eens naar looks van JGoodies te kijken. Als je die demo start moet je even windows extended look and feel aanschakelen en bij de clearlook tabblad (van de opstart applicatie) ClearLook even aanschakelen. Je ziet dan een hele lading onnodige borders ed verdwijnen bij de testapplicatie
Dat JGoodies is mooi spul :9

Ik begrijp nu ook eindelijk wat je wilde en da's toch iets anders dan ik in eerste instantie dacht.


[beetje offtopic]
Maar hoe zit het eigenlijk met de rechten van JGoodies?

Kun je het vrij gebruiken (ook als deel van een commerciële applicatie) mits je de source code bijvoegd en de licentie enz.?

Ik heb dit ook met bijvoorbeeld JFreeReport (http://www.jfree.org). Ik wil het gebruiken als onderdeel van een commerciële applicatie. Is dit mogelijk zolang ik voor dit deel geen kosten reken en de source bijvoeg?
[/beetje offtopic]

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
JDiskReport is ook erg handig en mooi. Behalve m'n editor (Jext) is het het enige Java GUI tooltje wat ik gebruik.

Prima te starten via Webstart.

Over license: hij gebruikt toch BSD license? Dat is prima toe te passen in commerciele produkten.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Is inderdaad BSD, dus dat is dan vrij te gebruiken. JFreeReport is overigens LGPL, hoe zit het daarmee?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
LGPL produkten mag je gebruiken vanuit gesloten applicaties. Je mag het produkt zelf echter niet aanpassen of uitbreiden en dan gesloten verspreiden.

Grof gezegd: zowel LGPL als BSD bieden dus de mogelijkheid tot gebruik in gesloten applicaties. LGPL beschermt daarbij ook de open ontwikkeling van de software zelf.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-07 21:46

Confusion

Fallen from grace

mbravenboer schreef op 24 juli 2003 @ 15:10:
LGPL produkten mag je gebruiken vanuit gesloten applicaties. Je mag het produkt zelf echter niet aanpassen of uitbreiden en dan gesloten verspreiden.

Grof gezegd: zowel LGPL als BSD bieden dus de mogelijkheid tot gebruik in gesloten applicaties. LGPL beschermt daarbij ook de open ontwikkeling van de software zelf.
Daar was vorige week toch ge-emmer over? Hier. Iemand een idee wat de uitkomst hiervan was?

Wie trösten wir uns, die Mörder aller Mörder?


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Iemand die Java produkten onder de LGPL uitbrengt heeft de bedoeling om de typische LGPL mogelijkheden te bieden. Ik vond het dus eigenlijk nogal irrelevant gezeik.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

mbravenboer schreef op 24 July 2003 @ 15:10:
LGPL produkten mag je gebruiken vanuit gesloten applicaties. Je mag het produkt zelf echter niet aanpassen of uitbreiden en dan gesloten verspreiden.

Grof gezegd: zowel LGPL als BSD bieden dus de mogelijkheid tot gebruik in gesloten applicaties. LGPL beschermt daarbij ook de open ontwikkeling van de software zelf.
Wat bedoel je precies met gesloten applicaties? De jars die worden gereleased mag je niet beroeren en moet je als zodanig apart meeleveren, naast je eigen jar(s)?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Apophis: Wat bedoel je precies met gesloten applicaties?
Niet open source. Beetje onduidelijk idd ;) .

Wat ik bedoelde is dat de discussie zinloos is. Je kan zelf aangeven wat je linken vindt in een bepaalde context. Dat de software als LGPL wordt uitgebracht betekent dat de auteurs in ieder geval een bepaalde vorm van linken in gedachten hebben die ze toe willen staan. Als ze dit niet zouden willen toestaan, hadden ze wel de GPL gekozen :+ .

Dat de LGPL gelijk zou zijn aan de GPL wat betreft Java is een onzinnige titel van de discussie die toen gevoerd werd: het gaat om de kijk van de auteur van de software op de zaak, niet om een of andere bijdehand die denkt dat zijn visie op wat linken is de enige juiste is ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1