Refactor component add buttons
This method works also for dark mode
This commit is contained in:
		
							parent
							
								
									dfa5a3a968
								
							
						
					
					
						commit
						65c6e96446
					
				| @ -209,7 +209,7 @@ public class ComponentAddButtons extends JPanel implements Scrollable { | ||||
| 			for (col = 0; col < buttons[row].length; col++) { | ||||
| 				buttons[row][col].setMinimumSize(d); | ||||
| 				buttons[row][col].setPreferredSize(d); | ||||
| 				buttons[row][col].getComponent(0).validate(); | ||||
| 				buttons[row][col].validate(); | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| @ -315,29 +315,32 @@ public class ComponentAddButtons extends JPanel implements Scrollable { | ||||
| 		 * The label may contain "\n" as a newline. | ||||
| 		 */ | ||||
| 		public ComponentButton(String text, Icon enabled, Icon disabled) { | ||||
| 			super(); | ||||
| 			setLayout(new MigLayout("fill, flowy, insets 0, gap 0", "", "")); | ||||
| 			 | ||||
| 			add(new JLabel(), "push, sizegroup spacing"); | ||||
| 			 | ||||
| 			// Add Icon | ||||
| 			if (enabled != null) { | ||||
| 				JLabel label = new JLabel(enabled); | ||||
| 				if (disabled != null) | ||||
| 					label.setDisabledIcon(disabled); | ||||
| 				add(label, "growx"); | ||||
| 			super(text, enabled); | ||||
| 
 | ||||
| 			setVerticalTextPosition(SwingConstants.BOTTOM); // this will put the text below the icon | ||||
| 			setHorizontalTextPosition(SwingConstants.CENTER); // this will center the text horizontally beneath the icon | ||||
| 			//setIconTextGap(0); // this is optional, it sets the gap between the icon and the text | ||||
| 
 | ||||
| 			// set the disabled icon if it is not null | ||||
| 			if (disabled != null) { | ||||
| 				setDisabledIcon(disabled); | ||||
| 			} | ||||
| 			 | ||||
| 			// Add labels | ||||
| 			String[] l = text.split("\n"); | ||||
| 			for (int i = 0; i < l.length; i++) { | ||||
| 				add(new StyledLabel(l[i], SwingConstants.CENTER, -2.0f), "growx"); | ||||
| 
 | ||||
| 			setHorizontalAlignment(SwingConstants.CENTER); // this will center the button itself in its parent component | ||||
| 
 | ||||
| 			// if you have multiline text, you could use html to format it | ||||
| 			if (text != null && text.contains("\n")) { | ||||
| 				text = "<html>" + text.replace("\n", "<br>") + "</html>"; | ||||
| 				setText(text); | ||||
| 			} | ||||
| 
 | ||||
| 			// Initialize enabled status | ||||
| 			valueChanged(null); | ||||
| 
 | ||||
| 			// Attach a tree selection listener if selection model is not null | ||||
| 			if (selectionModel != null) { | ||||
| 				selectionModel.addTreeSelectionListener(this); | ||||
| 			} | ||||
| 			 | ||||
| 			add(new JLabel(), "push, sizegroup spacing"); | ||||
| 			 | ||||
| 			valueChanged(null); // Update enabled status | ||||
| 			selectionModel.addTreeSelectionListener(this); | ||||
| 		} | ||||
| 		 | ||||
| 		 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user