added support for displaying list of files but need scrollbar

This commit is contained in:
js 2020-04-03 14:03:40 +02:00
parent 05a2967645
commit 4167cc3aa6
4 changed files with 95 additions and 49 deletions

View File

@ -4,9 +4,9 @@ import javax.swing.JFrame;
public class Gui{ public class Gui{
public static void main(String[] args) { public static void main(String[] args) {
MainWindow win = new MainWindow(); MainWindow win = new MainWindow();
} }
} }

View File

@ -4,14 +4,18 @@ import javax.swing.JFrame;
public class MainWindow extends JFrame{ public class MainWindow extends JFrame{
public MainWindow(){ private static final long serialVersionUID = 13L;
JFrame fenetre = new JFrame();
fenetre.setTitle("Client"); public MainWindow(){
fenetre.setSize(550, 200); JFrame fenetre = new JFrame();
fenetre.setLocationRelativeTo(null); fenetre.setTitle("Client");
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fenetre.setSize(550, 200);
fenetre.add(new Parameters()); fenetre.setLocationRelativeTo(null);
fenetre.setVisible(true); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} //fenetre.add(new Parameters());
String[] listTest = {"test", "test2", "test3", "test4", "test5", "test6", "test7"};
fenetre.add(new downloadSelection(listTest));
fenetre.setVisible(true);
}
} }

View File

@ -11,43 +11,44 @@ import java.awt.GridLayout;
public class Parameters extends JPanel{ public class Parameters extends JPanel{
private JLabel label1, label2, label3, label4, label5; private static final long serialVersionUID = 13L;
private JTextField field1, field2, field3, field4; private JLabel label1, label2, label3, label4, label5;
private JButton connectButton; private JTextField field1, field2, field3, field4;
private JComboBox<String> protocolSelector; private JButton connectButton;
private JComboBox<String> protocolSelector;
public Parameters(){ public Parameters(){
JPanel p1 = new JPanel(); JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(5, 2)); p1.setLayout(new GridLayout(5, 2));
FlowLayout layout = new FlowLayout(); FlowLayout layout = new FlowLayout();
JPanel p2 = new JPanel(); JPanel p2 = new JPanel();
p2.setLayout(layout); p2.setLayout(layout);
String[] elements = {"TCP", "UDP"}; String[] elements = {"TCP", "UDP"};
this.label1 = new JLabel("Server hostname: "); this.label1 = new JLabel("Server hostname: ");
this.label2 = new JLabel("Server port: "); this.label2 = new JLabel("Server port: ");
this.label3 = new JLabel("Tracker hostname: "); this.label3 = new JLabel("Tracker hostname: ");
this.label4 = new JLabel("Tracker port: "); this.label4 = new JLabel("Tracker port: ");
this.label5 = new JLabel("Protocol: "); this.label5 = new JLabel("Protocol: ");
this.field1 = new JTextField(20); this.field1 = new JTextField(20);
this.field2 = new JTextField(20); this.field2 = new JTextField(20);
this.field3 = new JTextField(20); this.field3 = new JTextField(20);
this.field4 = new JTextField(20); this.field4 = new JTextField(20);
this.connectButton = new JButton("Connect"); this.connectButton = new JButton("Connect");
protocolSelector = new JComboBox<>(elements); protocolSelector = new JComboBox<>(elements);
p1.add(label1); p1.add(label1);
p1.add(field1); p1.add(field1);
p1.add(label2); p1.add(label2);
p1.add(field2); p1.add(field2);
p1.add(label3); p1.add(label3);
p1.add(field3); p1.add(field3);
p1.add(label4); p1.add(label4);
p1.add(field4); p1.add(field4);
p1.add(label5); p1.add(label5);
p1.add(protocolSelector); p1.add(protocolSelector);
p2.add(connectButton); p2.add(connectButton);
this.add(p1, BorderLayout.NORTH); this.add(p1, BorderLayout.NORTH);
this.add(p2, BorderLayout.SOUTH); this.add(p2, BorderLayout.SOUTH);
setVisible(true); setVisible(true);
} }
} }

View File

@ -0,0 +1,41 @@
package gui;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JList;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
public class downloadSelection extends JPanel {
private static final long serialVersionUID = 13L;
private String[] listFilesToDownload;
private JList<String> list1;
private JLabel label1;
private JButton downloadButton;
public downloadSelection(String[] listFilesToDownload){
JPanel p1 = new JPanel();
JPanel p3 = new JPanel();
FlowLayout layout = new FlowLayout();
this.listFilesToDownload = listFilesToDownload;
this.list1 = new JList<>(listFilesToDownload);
this.label1 = new JLabel("List of files you can download: ");
this.downloadButton = new JButton("download");
this.list1.setSelectedIndex(0);
p1.setLayout(new GridLayout(1, 2));
p3.setLayout(layout);
this.setLayout(new GridLayout(2, 1));
p1.add(label1);
p1.add(list1);
p3.add(downloadButton);
this.add(p1);
this.add(p3);
setVisible(true);
}
}