corejava第10版

This commit is contained in:
deyou committed 2019-05-22 19:31:49 +08:00
1 parent 2021c3c227
commit 6165543dd3
1088 files changed
+94411

No files matched your search

@@ -0,0 +1,53 @@
package splitPane;
import java.awt.*;
import javax.swing.*;
/**
* This frame consists of two nested split panes to demonstrate planet images and data.
*/
class SplitPaneFrame extends JFrame
{
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 300;
private Planet[] planets = { new Planet("Mercury", 2440, 0), new Planet("Venus", 6052, 0),
new Planet("Earth", 6378, 1), new Planet("Mars", 3397, 2),
new Planet("Jupiter", 71492, 16), new Planet("Saturn", 60268, 18),
new Planet("Uranus", 25559, 17), new Planet("Neptune", 24766, 8),
new Planet("Pluto", 1137, 1), };
public SplitPaneFrame()
{
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
// set up components for planet names, images, descriptions
final JList<Planet> planetList = new JList<>(planets);
final JLabel planetImage = new JLabel();
final JTextArea planetDescription = new JTextArea();
planetList.addListSelectionListener(event ->
{
Planet value = (Planet) planetList.getSelectedValue();
// update image and description
planetImage.setIcon(value.getImage());
planetDescription.setText(value.getDescription());
});
// set up split panes
JSplitPane innerPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, planetList, planetImage);
innerPane.setContinuousLayout(true);
innerPane.setOneTouchExpandable(true);
JSplitPane outerPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, innerPane,
planetDescription);
add(outerPane, BorderLayout.CENTER);
}
}