下面列出了javax.swing.JLayeredPane#setLayout ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/** Creates a new instance of DesktopImpl */
public DesktopImpl () {
// layered pane with absolute positioning, to enable overlapping
layeredPane = new JLayeredPane();
layeredPane.setLayout(new LayeredLayout());
// desktop represents regular layer of layeredPane
desktop = new JPanel() {
@Override
public boolean isOpaque() {
if( UIManager.getBoolean( "NbMainWindow.showCustomBackground" ) ) //NOI18N
return false;
return super.isOpaque();
}
@Override
public void updateUI() {
Mutex.EVENT.readAccess( new Runnable() {
@Override
public void run() {
superUpdateUI();
}
});
}
private void superUpdateUI() {
super.updateUI();
}
};
desktop.setLayout(new GridBagLayout());
Color bkColor = UIManager.getColor("NbSplitPane.background"); //NOI18N
if( null != bkColor ) {
desktop.setBackground(bkColor);
desktop.setOpaque(true);
}
layeredPane.add(desktop);
}
/**
* Creates a layered scroll pane and centers it for a certain grid size.
*/
public LayeredScrollPane() {
layeredPane = new JLayeredPane();
layeredPane.setLayout(new OverlayLayout(layeredPane));
setViewportView(layeredPane);
getVerticalScrollBar().setUnitIncrement(SCROLL_SPEED);
getHorizontalScrollBar().setUnitIncrement(SCROLL_SPEED);
}
/**
* Fills the tablePane with content.
*/
private JComponent makePreviewTable() {
previewTable = new ExtendedJTable(false, false, false);
// ensure same background as JPanels in case of only few rows
previewTable.setBackground(Colors.PANEL_BACKGROUND);
previewTable.setColoredTableCellRenderer(new ColoredTableCellRenderer() {
private final Font boldFont = getFont().deriveFont(Font.BOLD);
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
adjustCell(row, label, boldFont);
return label;
}
});
loadingContentPane = new LoadingContentPane("loading_data", previewTable);
tablePane = new ExtendedJScrollPane(loadingContentPane);
tablePane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
tablePane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
tablePane.setBorder(null);
// add PREVIEW label in front of scrollpane
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setLayout(new OverlayLayout(layeredPane));
layeredPane.add(tablePane, JLayeredPane.DEFAULT_LAYER);
JPanel overlayPanel = new JPanel(new BorderLayout());
overlayPanel.setOpaque(false);
overlayLabel = new JLabel("", SwingConstants.CENTER);
showPreviewLettering();
overlayPanel.add(overlayLabel, BorderLayout.CENTER);
layeredPane.add(overlayPanel, JLayeredPane.PALETTE_LAYER);
return layeredPane;
}
private void addLayeredValidator() {
validator = new Validator();
JLayeredPane layeredPane = getRootPane().getLayeredPane();
layeredPane.setLayout(new OverlayLayout(layeredPane));
layeredPane.add(validator, (Integer) (JLayeredPane.DEFAULT_LAYER + 50));
//validator.setBounds(0, 0, getWidth(), getHeight());
}
/**
* Creates a content pane.
*
* @return a content pane.
*/
private static JLayeredPane createContentPane() {
JLayeredPane contentPane = new JLayeredPane();
contentPane.setBounds(100, 100, 1000, 700);
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setVisible(true);
return contentPane;
}
/**
* Creates a content pane.
*
* @return a content pane.
*/
private static JLayeredPane createContentPane() {
JLayeredPane contentPane = new JLayeredPane();
contentPane.setBounds(100, 100, 1000, 700);
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setVisible(true);
return contentPane;
}
/**
* Creates a content pane.
*
* @return a content pane.
*/
private static JLayeredPane createContentPane() {
JLayeredPane contentPane = new JLayeredPane();
contentPane.setBounds(100, 100, 1000, 700);
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setVisible(true);
return contentPane;
}
/**
* Creates a content pane.
*
* @return a content pane.
*/
private static JLayeredPane createContentPane() {
JLayeredPane contentPane = new JLayeredPane();
contentPane.setBounds(100, 100, 1000, 700);
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setVisible(true);
return contentPane;
}
/**
* Creates a content pane.
*
* @return a content pane.
*/
private static JLayeredPane createContentPane() {
JLayeredPane contentPane = new JLayeredPane();
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setVisible(true);
return contentPane;
}
public SwingClientGUI(StendhalClient client, UserContext context,
NotificationChannelManager channelManager, JFrame splash) {
this.userContext = context;
setupInternalWindowProperties();
/*
* Add a layered pane for the game area, so that we can have
* windows on top of it
*/
pane = new JLayeredPane();
pane.setLayout(new FreePlacementLayout());
// Create the main game screen
screen = new GameScreen(client);
GameScreen.setDefaultScreen(screen);
screenController = new ScreenController(screen);
pane.addComponentListener(new GameScreenResizer(screen));
// ... and put it on the ground layer of the pane
pane.add(screen, Component.LEFT_ALIGNMENT, JLayeredPane.DEFAULT_LAYER);
quitDialog = new QuitDialog();
pane.add(quitDialog.getQuitDialog(), JLayeredPane.MODAL_LAYER);
setupChatEntry();
chatLogArea = createChatLog(channelManager);
containerPanel = createContainerPanel();
leftColumn = createLeftPanel(client);
frame = prepareMainWindow(splash);
setupChatText();
setupZoneChangeListeners(client);
setupOverallLayout();
int divWidth = verticalSplit.getDividerSize();
WtWindowManager.getInstance().registerSettingChangeListener(SCALE_PREFERENCE_PROPERTY,
new ScalingSettingChangeListener(divWidth));
setInitialWindowStates();
frame.setVisible(true);
/*
* Used by settings dialog to restore the client's dimensions back to
* the original width and height. Needs to be called after
* frame.setSize().
*/
frameDefaultSize = frame.getSize();
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(final WindowEvent e) {
requestQuit(client);
}
});
setupKeyHandling(client);
locationHacksAndBugWorkaround();
WindowUtils.restoreSize(frame);
}