Então...
Eu segui o guia do próprio java, e usei seu código pra gerar isto:
[IMG]http://i.imgur.com/fzvAk.png[/IMG]
Guia: http://docs.oracle.com/javase/tutorial/uiswing/components/splitpane.html
Bom eu tentei bastante, mas não consegui adicionar um texto embaixo da imagem.
Segue o código: (feito pela Oracle e adaptado)
package Test;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
//SplitPaneDemo itself is not a visible component.
public class Altarya extends JPanel
implements ListSelectionListener {
private JLabel picture;
private JLabel txt;
private JList list;
private JSplitPane splitPane;
private String[] imageNames = { "Bird", "Cat", "Dog", "Rabbit", "Pig", "dukeWaveRed",
"kathyCosmo", "lainesTongue", "left", "middle", "right", "stickerface"};
private String[] imageEX1 = { "texto1", "texto2", "texto3", "texto4", "texto5", "texto6",
"texto7", "texto8", "texto9", "texto10", "texto11", "texto12"};
private String[] imageEX2 = { "texto1", "texto2", "texto3", "texto4", "texto5", "texto6",
"texto7", "texto8", "texto9", "texto10", "texto11", "texto12"};
private String[] imageEX3 = { "texto1", "texto2", "texto3", "texto4", "texto5", "texto6",
"texto7", "texto8", "texto9", "texto10", "texto11", "texto12"};
private String[] imageEX4 = { "texto1", "texto2", "texto3", "texto4", "texto5", "texto6",
"texto7", "texto8", "texto9", "texto10", "texto11", "texto12"};
public Altarya() {
//Create the list of images and put it in a scroll pane.
//PERGUNTA @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//PERGUNTA @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//PERGUNTA @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
/*Como pode ver, aqui a lista já é definida com o array "imageNames"
*Mas teria como muda-la? Por exemplo, criarei um botão para escolher qual array lá em cima
*usar? Tentei mas teria que mudar várias coisas para static */
//PERGUNTA @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//PERGUNTA @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//PERGUNTA @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
list = new JList(imageNames);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSelectedIndex(0);
list.addListSelectionListener(this);
txt = new JLabel();
txt.setHorizontalAlignment(JLabel.CENTER);
JScrollPane listScrollPane = new JScrollPane(list);
picture = new JLabel();
picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
list.setFont(new Font("Book Antiqua", Font.PLAIN, 15));
picture.setHorizontalAlignment(JLabel.CENTER);
JScrollPane pictureScrollPane = new JScrollPane(picture);
//Create a split pane with the two scroll panes in it.
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
listScrollPane, pictureScrollPane);
splitPane.setOneTouchExpandable(true);
splitPane.setDividerLocation(150);
//Provide minimum sizes for the two components in the split pane.
Dimension minimumSize = new Dimension(100, 50);
listScrollPane.setMinimumSize(minimumSize);
pictureScrollPane.setMinimumSize(minimumSize);
//Provide a preferred size for the split pane.
splitPane.setPreferredSize(new Dimension(400, 200));
updateLabel(imageNames[list.getSelectedIndex()]);
}
//Listens to the list
public void valueChanged(ListSelectionEvent e) {
JList list = (JList)e.getSource();
updateLabel(imageNames[list.getSelectedIndex()]);
}
//Renders the selected image
protected void updateLabel (String name) {
ImageIcon icon = createImageIcon("images/" + name + ".gif");
picture.setIcon(icon);
if (icon != null) {
picture.setText(null);
} else {
picture.setText("Image not found");
}
text();
}
//Used by SplitPaneDemo2
public JList getImageList() {
return list;
}
public JSplitPane getSplitPane() {
return splitPane;
}
/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = Altarya.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("SplitPaneDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Altarya splitPaneDemo = new Altarya();
frame.getContentPane().add(splitPaneDemo.getSplitPane());
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public void text(){
System.out.println(imageNames[list.getSelectedIndex()]);
//JTextArea information = new JTextArea(imageTexts[list.getSelectedIndex()], 10,34);
}
}
Então..
A pergunta está no próprio codigo, em forma de comentário cercado por "@"