static JTextPane verticallyCenterTextPane(final JTextPane tp) { swing { tp.setEditorKit(new MyEditorKit); // TODO: rename classes } ret tp; } sclass MyEditorKit extends StyledEditorKit { public ViewFactory getViewFactory() { return new StyledViewFactory(); } static class StyledViewFactory implements ViewFactory { public View create(Element elem) { String kind = elem.getName(); if (kind != null) { if (kind.equals(AbstractDocument.ContentElementName)) { return new LabelView(elem); } else if (kind.equals(AbstractDocument.ParagraphElementName)) { return new ParagraphView(elem); } else if (kind.equals(AbstractDocument.SectionElementName)) { return new CenteredBoxView(elem, View.Y_AXIS); } else if (kind.equals(StyleConstants.ComponentElementName)) { return new ComponentView(elem); } else if (kind.equals(StyleConstants.IconElementName)) { return new IconView(elem); } } return new LabelView(elem); } } } sclass CenteredBoxView extends BoxView { public CenteredBoxView(Element elem, int axis) { super(elem,axis); } protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) { super.layoutMajorAxis(targetSpan,axis,offsets,spans); int textBlockHeight = 0; int offset = 0; for (int i = 0; i < spans.length; i++) { textBlockHeight = spans[i]; } offset = (targetSpan - textBlockHeight) / 2; for (int i = 0; i < offsets.length; i++) { offsets[i] += offset; } } }
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1010263 | 
| Snippet name: | verticallyCenterTextPane [quite complicated, seems to work, but breaks horizontal center, better use jFullCenter] | 
| Eternal ID of this version: | #1010263/5 | 
| Text MD5: | d1628f370288f659047495564921c0b2 | 
| Author: | stefan | 
| Category: | javax / gui | 
| Type: | JavaX fragment (include) | 
| Public (visible to everyone): | Yes | 
| Archived (hidden from active list): | No | 
| Created/modified: | 2017-09-07 19:42:28 | 
| Source code size: | 1861 bytes / 56 lines | 
| Pitched / IR pitched: | No / No | 
| Views / Downloads: | 616 / 716 | 
| Version history: | 4 change(s) | 
| Referenced in: | [show references] |