From 4167cc3aa6cb6fd1a0d93c0c48d8af7dd15648d9 Mon Sep 17 00:00:00 2001 From: js Date: Fri, 3 Apr 2020 14:03:40 +0200 Subject: [PATCH] added support for displaying list of files but need scrollbar --- src/gui/Gui.java | 6 +-- src/gui/MainWindow.java | 22 ++++++---- src/gui/Parameters.java | 75 +++++++++++++++++----------------- src/gui/downloadSelection.java | 41 +++++++++++++++++++ 4 files changed, 95 insertions(+), 49 deletions(-) create mode 100644 src/gui/downloadSelection.java diff --git a/src/gui/Gui.java b/src/gui/Gui.java index bb8b3e9..748e215 100644 --- a/src/gui/Gui.java +++ b/src/gui/Gui.java @@ -4,9 +4,9 @@ import javax.swing.JFrame; public class Gui{ - public static void main(String[] args) { - MainWindow win = new MainWindow(); - } + public static void main(String[] args) { + MainWindow win = new MainWindow(); + } } diff --git a/src/gui/MainWindow.java b/src/gui/MainWindow.java index 42bcc0b..d6d5cbb 100644 --- a/src/gui/MainWindow.java +++ b/src/gui/MainWindow.java @@ -4,14 +4,18 @@ import javax.swing.JFrame; public class MainWindow extends JFrame{ - public MainWindow(){ - JFrame fenetre = new JFrame(); - fenetre.setTitle("Client"); - fenetre.setSize(550, 200); - fenetre.setLocationRelativeTo(null); - fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - fenetre.add(new Parameters()); - fenetre.setVisible(true); - } + private static final long serialVersionUID = 13L; + + public MainWindow(){ + JFrame fenetre = new JFrame(); + fenetre.setTitle("Client"); + fenetre.setSize(550, 200); + fenetre.setLocationRelativeTo(null); + 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); + } } diff --git a/src/gui/Parameters.java b/src/gui/Parameters.java index 6db54e1..a681cd0 100644 --- a/src/gui/Parameters.java +++ b/src/gui/Parameters.java @@ -11,43 +11,44 @@ import java.awt.GridLayout; public class Parameters extends JPanel{ - private JLabel label1, label2, label3, label4, label5; - private JTextField field1, field2, field3, field4; - private JButton connectButton; - private JComboBox protocolSelector; + private static final long serialVersionUID = 13L; + private JLabel label1, label2, label3, label4, label5; + private JTextField field1, field2, field3, field4; + private JButton connectButton; + private JComboBox protocolSelector; - public Parameters(){ - JPanel p1 = new JPanel(); - p1.setLayout(new GridLayout(5, 2)); - FlowLayout layout = new FlowLayout(); - JPanel p2 = new JPanel(); - p2.setLayout(layout); - String[] elements = {"TCP", "UDP"}; - this.label1 = new JLabel("Server hostname: "); - this.label2 = new JLabel("Server port: "); - this.label3 = new JLabel("Tracker hostname: "); - this.label4 = new JLabel("Tracker port: "); - this.label5 = new JLabel("Protocol: "); - this.field1 = new JTextField(20); - this.field2 = new JTextField(20); - this.field3 = new JTextField(20); - this.field4 = new JTextField(20); - this.connectButton = new JButton("Connect"); - protocolSelector = new JComboBox<>(elements); - p1.add(label1); - p1.add(field1); - p1.add(label2); - p1.add(field2); - p1.add(label3); - p1.add(field3); - p1.add(label4); - p1.add(field4); - p1.add(label5); - p1.add(protocolSelector); - p2.add(connectButton); - this.add(p1, BorderLayout.NORTH); - this.add(p2, BorderLayout.SOUTH); - setVisible(true); - } + public Parameters(){ + JPanel p1 = new JPanel(); + p1.setLayout(new GridLayout(5, 2)); + FlowLayout layout = new FlowLayout(); + JPanel p2 = new JPanel(); + p2.setLayout(layout); + String[] elements = {"TCP", "UDP"}; + this.label1 = new JLabel("Server hostname: "); + this.label2 = new JLabel("Server port: "); + this.label3 = new JLabel("Tracker hostname: "); + this.label4 = new JLabel("Tracker port: "); + this.label5 = new JLabel("Protocol: "); + this.field1 = new JTextField(20); + this.field2 = new JTextField(20); + this.field3 = new JTextField(20); + this.field4 = new JTextField(20); + this.connectButton = new JButton("Connect"); + protocolSelector = new JComboBox<>(elements); + p1.add(label1); + p1.add(field1); + p1.add(label2); + p1.add(field2); + p1.add(label3); + p1.add(field3); + p1.add(label4); + p1.add(field4); + p1.add(label5); + p1.add(protocolSelector); + p2.add(connectButton); + this.add(p1, BorderLayout.NORTH); + this.add(p2, BorderLayout.SOUTH); + setVisible(true); + } } diff --git a/src/gui/downloadSelection.java b/src/gui/downloadSelection.java new file mode 100644 index 0000000..9eb809f --- /dev/null +++ b/src/gui/downloadSelection.java @@ -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 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); + } + +}