Tamanho do JList

2 respostas
M

Gente, tenho o seguinte código:

/*
 * Created on 17/08/2008
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package view;

import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;

import javax.swing.DefaultListModel;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import javax.swing.JList;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.JButton;

import javax.swing.JTextField;
import java.awt.BorderLayout;
/**
 * @author Marciele
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class FrTesteJList extends JFrame {

	private javax.swing.JPanel jContentPane = null;

	private JPanel jPanel = null;

	private JList jList = null;

	private DefaultListModel listModel;

	private JButton jButton = null;

	private JButton jButton1 = null;

	private JPanel jPanel1 = null;

	private JTextField jTextField = null;

	private JScrollPane scrollList;
	/**
	 * This method initializes jPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jPanel = new JPanel();
			jPanel.setLayout(new BorderLayout());
			//jPanel.add(getJList(), BorderLayout.CENTER);
			jPanel.add(getJList(), null);
		}
		return jPanel;
	}

	/**
	 * This method initializes jList
	 * 
	 * @return javax.swing.JList
	 */
	private JScrollPane getJList() {
		if (scrollList == null) {
			listModel = new DefaultListModel();
			listModel.addElement("Debbie Scott");
			jList = new JList(listModel);
			jList.addListSelectionListener(new ListSelectionListener() {

				public void valueChanged(ListSelectionEvent arg0) {
					// TODO Auto-generated method stub

				}

			});
			scrollList = new JScrollPane(jList);
			scrollList.setPreferredSize(new java.awt.Dimension(150, 200));

		}
		return scrollList;
	}

	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setText("Adicionar");
			jButton.addMouseListener(new MouseListener(){

				public void mouseClicked(MouseEvent arg0) {
					int size = listModel.getSize();
					int index = size;
					listModel.add(index,jTextField.getText());

					if (size >= 0) { //Nobody's left, disable firing.
						jButton1.setEnabled(true);

					} else { //Select an index.
						if (index == listModel.getSize()) {
							//removed item in last position
							index++;
						}
						jList.setSelectedIndex(index);
						jList.ensureIndexIsVisible(index);
					}
					
				}

				public void mouseEntered(MouseEvent arg0) {
					// TODO Auto-generated method stub
					
				}

				public void mouseExited(MouseEvent arg0) {
					// TODO Auto-generated method stub
					
				}

				public void mousePressed(MouseEvent arg0) {
					// TODO Auto-generated method stub
					
				}

				public void mouseReleased(MouseEvent arg0) {
					// TODO Auto-generated method stub
					
				}
				
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jButton1
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setText("Remover");
			jButton1.addMouseListener(new MouseListener() {

				public void mouseClicked(MouseEvent arg0) {
					int index = jList.getSelectedIndex();
					if (index >= 0) {
						listModel.remove(index);
					}

					int size = listModel.getSize();

					if (size == 0) { //Nobody's left, disable firing.
						jButton1.setEnabled(false);

					} else { //Select an index.
						if (index == listModel.getSize()) {
							//removed item in last position
							index--;
						}
						jList.setSelectedIndex(index);
						jList.ensureIndexIsVisible(index);
					}

				}

				public void mouseEntered(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}

				public void mouseExited(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}

				public void mousePressed(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}

				public void mouseReleased(MouseEvent arg0) {
					// TODO Auto-generated method stub

				}

			});
		}
		return jButton1;
	}

	/**
	 * This method initializes jPanel1
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJPanel1() {
		if (jPanel1 == null) {
			jPanel1 = new JPanel();
			jPanel1.add(getJTextField(), null);
			jPanel1.add(getJButton(), null);
			jPanel1.add(getJButton1(), null);
		}
		return jPanel1;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */    
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setPreferredSize(new java.awt.Dimension(100,20));
		}
		return jTextField;
	}
 	public static void main(String[] args) {
		new FrTesteJList().show();
	}

	/**
	 * This is the default constructor
	 */
	public FrTesteJList() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 300);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(new BoxLayout(jContentPane, BoxLayout.Y_AXIS));
			jContentPane.add(getJPanel(), null);
			jContentPane.add(getJPanel1(), null);
		}
		return jContentPane;
	}
}

Mas não quero que o jlist ocupe todo o meu panel, quero que ele fique com tamanho 150,200; como faço isso?

obrigada.

2 Respostas

meucci

Olá

JList.setBounds(x, y, 150, 200);

Acredito que seja isso

Até mais

ViniGodoy

O Swing não trabalha assim.

Para saber dimensionar componentes, você deve entender como funcionam os layout managers.
Só com eles você vai ter uma interface gráfica que suporte redimensionamento, multiplos look&feel e seja realmente muiti-plataforma.

Dá uma lida nos textos daqui:
http://java.sun.com/docs/books/tutorial/uiswing/layout/

Criado 19 de agosto de 2008
Ultima resposta 20 de ago. de 2008
Respostas 2
Participantes 3