下面列出了javax.swing.JPanel#doLayout ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Returns button with resource amounts and given text. If resources is empty then returns button
* with just the text.
*/
public JButton getResourcesButton(final ResourceCollection resources, final String text) {
if (resources.isEmpty()) {
return new JButton(text);
}
final JPanel panel = getResourcesPanel(resources);
panel.setOpaque(false);
panel.add(new JLabel(text));
panel.setSize(panel.getPreferredSize());
panel.doLayout();
final BufferedImage image =
new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_ARGB);
final Graphics2D g = image.createGraphics();
panel.paint(g);
g.dispose();
return new JButton(new ImageIcon(image));
}
public static Component createRowEditor(Row r) {
JPanel rowEditor = new JPanel();
rowEditor.setSize(800, 24);
rowEditor.setLayout(new BoxLayout(rowEditor, BoxLayout.X_AXIS));
rowEditor.setBackground(Theme.background.color);
rowEditor.setOpaque(true);
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.A1.tone", 3, toneListner));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.A1.volume", 1));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.A1.commands", 3));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.B1.tone", 3, toneListner));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.B1.volume", 1));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.B1.commands", 3));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.C1.tone", 3, toneListner));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.C1.volume", 1));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.C1.commands", 3));
rowEditor.add(EditableLabel.generateTextLabel(r, "ay1noisePeriod", 4));
rowEditor.add(EditableLabel.generateTextLabel(r, "ay1envelopePeriod", 4));
rowEditor.add(generateEnvelopeEditor(r.ay1envelopeShape, r, "ay2envelopeShape"));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.A2.tone", 3, toneListner));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.A2.volume", 1));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.A2.commands", 3));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.B2.tone", 3, toneListner));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.B2.volume", 1));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.B2.commands", 3));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.C2.tone", 3, toneListner));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.C2.volume", 1));
rowEditor.add(EditableLabel.generateTextLabel(r, "channels.C2.commands", 3));
rowEditor.add(EditableLabel.generateTextLabel(r, "ay2noisePeriod", 4));
rowEditor.add(EditableLabel.generateTextLabel(r, "ay2envelopePeriod", 4));
rowEditor.add(generateEnvelopeEditor(r.ay2envelopeShape, r, "ay2envelopeShape"));
rowEditor.add(EditableLabel.generateTextLabel(r, "globalCommands", 6));
rowEditor.doLayout();
return rowEditor;
}