Sortering af ArrayList igen...
Hej igen.Jeg har lige haft et indlæg om dette, men det virker ikke helt som jeg gerne vil have det til. Til at starte med vil jeg sige at jeg bruger Oracle JDeveloper, når jeg programmere i Java. I kan se min kode ned under. Mit problem er at jeg vil gerne have at min list bliver sorteret efter, hvilken ting man søger efter. Det vil sige, enden typpe, tittel elller codex. Et eksempel kan være typpe. Jeg vil så gerne have at det der kommer ude når jeg søger på typpe bliver sorteret i alfabetisk-orden.
Kode:
public class Frame1 extends JFrame {
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JButton jButton1 = new JButton();
JTextField jTextField1 = new JTextField();
Krontrol krontrol = new Krontrol();
FilmenListe list = new FilmenListe();;
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
JButton jButton2 = new JButton();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
JMenu jMenu2 = new JMenu();
JMenu jMenu3 = new JMenu();
JMenuItem jMenuItem1 = new JMenuItem();
/**
* Constructs a new instance.
*/
public Frame1() {
super();
try {
jbInit();
list.add(new Filmen("The hous of fire","1","hej"));
list.add(new Filmen("Morten","3","a"));
list.add(new Filmen("Morten","2","c"));
list.add(new Filmen("Morten","5","b"));
list.add(new Filmen("Morten","4","d"));
list.add(new Filmen("3","3","e"));
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* Initializes the state of this instance.
*/
private void jbInit() throws Exception {
this.getContentPane().setLayout(borderLayout1);
this.setSize(new Dimension(470, 360));
jButton1.setText("Søg");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
jTextField1.setPreferredSize(new Dimension(82, 20));
jScrollPane1.setDoubleBuffered(true);
jScrollPane1.setPreferredSize(new Dimension(200, 260));
jTextArea1.setPreferredSize(new Dimension(200, 260));
jButton2.setText("jButton2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jMenuBar1.setBackground(new Color(236, 233, 216));
jMenu1.setBackground(new Color(236, 233, 216));
jMenu1.setText("File");
jMenu2.setBackground(new Color(236, 233, 216));
jMenu2.setText("Search");
jMenu3.setBackground(new Color(236, 233, 216));
jMenu3.setText("Help");
jMenuItem1.setText("Help Topics");
this.getContentPane().add(jPanel1, BorderLayout.EAST);
jPanel1.add(jButton2, null);
jPanel1.add(jButton1, null);
jPanel1.add(jTextField1, null);
this.getContentPane().add(jPanel2, BorderLayout.WEST);
jPanel2.add(jScrollPane1, null);
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenu3);
jMenu3.add(jMenuItem1);
jScrollPane1.getViewport().add(jTextArea1, null);
jScrollPane1.getViewport();
this.setJMenuBar(jMenuBar1);
this.setResizable(false);
}
void jButton1_actionPerformed(ActionEvent e)
{
Object tal = list.findTyppe(jTextField1.getText());
String text = tal.toString();
String text1 = jTextField1.getText();
if(text.indexOf(text1)>-1)
{
jTextArea1.setText(tal.toString());
}
else
{
jTextArea1.setText("Findes ikke i listen");
}
}
import java.util.*;
-----------------------------------------------------------
public class FilmenListe extends ArrayList {
/**
* Constructor
*/
public StringBuffer findTitel(String titel)
{
StringBuffer buffer = new StringBuffer();
Filmen filmen;
for (int i = 0; i < size(); i++)
{
filmen = (Filmen)get(i);
if(filmen.gettitel().equalsIgnoreCase(titel)) buffer.append(filmen);
}
return buffer;
}
public StringBuffer findCodex(String codex)
{
StringBuffer buffer = new StringBuffer();
Filmen filmen;
for (int i = 0; i < size(); i++)
{
filmen = (Filmen)get(i);
if(filmen.getCodex().equalsIgnoreCase(codex)) buffer.append(filmen);
}
return buffer;
}
public StringBuffer findTyppe(String typpe)
{
StringBuffer buffer = new StringBuffer();
Filmen filmen;
for (int i = 0; i < size(); i++)
{
filmen =(Filmen)get(i);
if(filmen.getTyppe().equalsIgnoreCase(typpe)) buffer.append(filmen);
}
return buffer;
}
}
-----------------------------------------------------------
public class Filmen {
private String titel;
private String codex;
private String typpe;
public Filmen(String titel, String codex, String typpe)
{
this.titel = titel;
this.codex = codex;
this.typpe = typpe;
}
public String gettitel()
{
return titel;
}
public String getCodex()
{
return codex;
}
public String getTyppe()
{
return typpe;
}
public String toString()
{
return ("Titel:"+titel+"\n"+"Codex:"+codex+"\n"+"Typpe:"+typpe+"\n"+"\n");
}
}
Håber at der er en der kan hjælpe :-)
