21. marts 2004 - 18:39Der er
11 kommentarer og 1 løsning
vedr. tab i List
I min liste skal den vise author og books, som hver hentes fra min database. Det er 2 strings, som jeg sætter sammen til en string, men for at holde dem adskilt, vil jeg gerne bruge en tab imellem dem, \t, men virker ikke i GUI? Hvordan bruger jeg tab i gui?
public class CostumCellRender extends javax.swing.JFrame { public CostumCellRender() { initComponents(); setSize(300,100); }
private void initComponents() {
addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); list = new MyJList();
scroll = new JScrollPane(); scroll.setViewportView(list); getContentPane().add(scroll);
Den extender JTextArea hvor der kan anvendes \t \n getListCellRendererComponent( JList list, // Refererer til aktuelle JList Object value,// Refererer til værdien i JList int index, // Selected index boolean isSelected, // Valgt ikke valgt boolean cellHasFocus){ //
if(isSelected) // Henter en JList's normale baggrundsfarve på et // valgt item og sætter denne farve på valgt item setBackground(list.getSelectionBackground()); else // Sætter baggrundsfarve på de items som ikke er valgt setBackground(java.awt.Color.WHITE);
// Sætter teksten i JTextArea setText(value.toString());
// Returnerer Componenten (JTextArea til JListen) som er det der // vises i JListen return this;
En JList's default cellRenderer er javax.swing.DefaultListCellRenderer som extender JLabel, i JLabel kan du hverken bruge \n eller \t, derfor erstatter man bare den DefaultListCellRenderer med sin egen.
Altså laver en klasse som extender JTextArea og bruger den som cellRenderer i stedet for default rendereren.
Det her noget sludder if(isSelected) // Henter en JList's normale baggrundsfarve på et // valgt item og sætter denne farve på valgt item setBackground(list.getSelectionBackground()); else
Skal være
if(isSelected) // Henter en JList's normale baggrundsfarve på // JTextarea som repræsenterer valgt item setBackground(list.getSelectionBackground()); else
Prøver lige igen if(isSelected) // Henter en JList's normale baggrundsfarve og sætter // den på JTextarea'et som repræsenterer valgt item setBackground(list.getSelectionBackground()); else
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.