Hallo zusammen,
zuallererst, ist mein erster Beitrag. Ich hab sowohl Google wie auch die Forensuche bemüht, allerdings dabei nichts brauchbares gefunden aus dem ich schlau geworden bin. Deshalb jetzt der Versuch ein eigenes Thema aufzumachen.
Nun also zum Thema:
ich würde gerne in einem JFrame ein Array wiedergeben. zum üben habe ich mir eine Klasse geschrieben, welche mir abhängig von meiner Auswahl eine Googlesuche zum entsprechenden Begriff durchführt. Diese Klasse würde ich nun gerne in mehreren Schritten implementieren, stoße aber dabei auf eine Reihe von Problemen, bei denen ich ein paar Tipps gebrauchen könnte.
1. Schritt: das allgemeine implementieren eines Fensters, in welchem aus einem Array Informationen gelesen werden und diese dann alle in abhängigkeit von der Arraylänge im Fenster wiedergegeben werden(für die Beispielklasse bedeutet das, dass für jede Position im "names" array ein Label erzeugt werden soll. Hierbei stoße ich auf das Problem, dass ich immer nur das Label der letzten Arrayposition angezeigt bekomme.
Wenn mir jemand sagen könnte wo mein Problem liegt oder mir einen Denkanstoß geben könnte würde mir das vielleicht schon reichen. Ich möchte keinen vorgekauten funktionierenden Code, davon lerne ich vermutlich deutlich weniger als wenn ich selbst nochmal drüber nachdenken muss.
zu den weiteren Schritten bin ich noch nicht gekommen, vermute aber das ich dabei auch noch einige Stolpersteine finden werde
.
ganz allgemein, ich lerne seit einem Semester Java, bin also noch nicht superfit. allgemeinte tipps und anmerkungen zum Code sind also gern gesehen.
vielen dank =)
hier einmal die Klasse auf dem aktuellen Stand:
zuallererst, ist mein erster Beitrag. Ich hab sowohl Google wie auch die Forensuche bemüht, allerdings dabei nichts brauchbares gefunden aus dem ich schlau geworden bin. Deshalb jetzt der Versuch ein eigenes Thema aufzumachen.
Nun also zum Thema:
ich würde gerne in einem JFrame ein Array wiedergeben. zum üben habe ich mir eine Klasse geschrieben, welche mir abhängig von meiner Auswahl eine Googlesuche zum entsprechenden Begriff durchführt. Diese Klasse würde ich nun gerne in mehreren Schritten implementieren, stoße aber dabei auf eine Reihe von Problemen, bei denen ich ein paar Tipps gebrauchen könnte.
1. Schritt: das allgemeine implementieren eines Fensters, in welchem aus einem Array Informationen gelesen werden und diese dann alle in abhängigkeit von der Arraylänge im Fenster wiedergegeben werden(für die Beispielklasse bedeutet das, dass für jede Position im "names" array ein Label erzeugt werden soll. Hierbei stoße ich auf das Problem, dass ich immer nur das Label der letzten Arrayposition angezeigt bekomme.
Wenn mir jemand sagen könnte wo mein Problem liegt oder mir einen Denkanstoß geben könnte würde mir das vielleicht schon reichen. Ich möchte keinen vorgekauten funktionierenden Code, davon lerne ich vermutlich deutlich weniger als wenn ich selbst nochmal drüber nachdenken muss.
zu den weiteren Schritten bin ich noch nicht gekommen, vermute aber das ich dabei auch noch einige Stolpersteine finden werde
ganz allgemein, ich lerne seit einem Semester Java, bin also noch nicht superfit. allgemeinte tipps und anmerkungen zum Code sind also gern gesehen.
vielen dank =)
hier einmal die Klasse auf dem aktuellen Stand:
Java:
package google_search;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class SearchFrame extends JFrame
{
String[] names = {"Oscar", "kruemelmonster","graf zahl"};
String[] ProfilePic = {Pfad zu den Bildern des "names" Arrays};
String[] Websites = {"Google"};
String[] WebURLs = {"https://www.google.com/search?q="};
int counter1 = 0;
//Label
JLabel jL1 = new JLabel(new ImageIcon(ProfilePic[counter1]));
JLabel[] jLabels= new JLabel[names.length];
JLabel jL2 = new JLabel();
//Buttons
private JButton searchTerm = null;
protected JButton getSearch() {
if (searchTerm == null) {
searchTerm = new JButton("Suchen");
//searchTerm.setVisible(false);
//searchTerm.setEnabled(false);
searchTerm.addMouseListener(new Search_MouseAdapter(this));
}
return searchTerm;
}
//Comboboxes
private JComboBox<String> WebsiteVis = null;
public JComboBox<String> getWebsiteVis() {
if (this.WebsiteVis == null) {
this.WebsiteVis = new JComboBox<String>(Websites);
this.WebsiteVis.setSelectedIndex(0);
}
return this.WebsiteVis;
}
public SearchFrame(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("SearchFrame");
Container myCP = this.getContentPane();
myCP.setLayout(new GridBagLayout());
Insets myI = new Insets(2, 2, 2, 2);
double weightx = 0;
double weighty = 0;
int anchor = GridBagConstraints.WEST;
int fillNone = GridBagConstraints.BOTH;
//Labels
myCP.add(jL1,
new GridBagConstraints(1, 0, 2, 1, weightx, weighty, anchor, fillNone, myI, 0, 0));
//Versuch der Labelerstellung mit einer Schleife
for (int counterTest =0; counterTest<names.length;counterTest++)
{
jL2.setText(names[counterTest]);
myCP.add(jL2,
new GridBagConstraints(counterTest, 1, 2, 1, weightx, weighty, anchor, fillNone, myI, 0, 0));
}
//Comboboxes
myCP.add(getWebsiteVis(),
new GridBagConstraints(0, 0, 2, 1, weightx, weighty, anchor, fillNone, myI, 0, 0));
this.pack();
this.setVisible(true);
}
}
//Mouseadapter zum öffnen von Google
class Search_MouseAdapter extends MouseAdapter {
private SearchFrame sf;
public Search_MouseAdapter(SearchFrame sf) {
this.sf = sf;
}
@Override
public void mouseClicked(MouseEvent e) {
try {
Desktop desktop = java.awt.Desktop.getDesktop();
URI oURL = new URI(sf.WebURLs[0]+sf.names[0]);
desktop.browse(oURL);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}