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: | 405 / 483 |
Version history: | 4 change(s) |
Referenced in: | [show references] |