PhotoWidget JavaSwing
PhotoBrowser/.idea/misc.xml
PhotoBrowser/.idea/modules.xml
PhotoBrowser/.idea/uiDesigner.xml
PhotoBrowser/.idea/workspace.xml
1631621781254 1631621781254
PhotoBrowser/PhotoBrowser.iml
PhotoBrowser/src/Main.java
PhotoBrowser/src/Main.java
public
class
Main
{
public
static
void
main
(
String
[]
args
)
{
PhotoFrame
frame
=
new
PhotoFrame
();
frame
.
setVisible
(
true
);
}
}
PhotoBrowser/src/PhotoFrame.java
PhotoBrowser/src/PhotoFrame.java
import
javax
.
swing
.
*
;
import
javax
.
swing
.
border
.
Border
;
import
javax
.
swing
.
filechooser
.
FileNameExtensionFilter
;
import
java
.
awt
.
*
;
import
java
.
awt
.
event
.
MouseAdapter
;
import
java
.
awt
.
event
.
MouseEvent
;
import
java
.
awt
.
event
.
MouseListener
;
import
java
.
awt
.
image
.
BufferedImage
;
import
java
.
io
.
File
;
import
java
.
io
.
IOException
;
public
class
PhotoFrame
extends
JFrame
{
private
JLabel
statusBar
=
new
JLabel
(
"Status"
);
//private PhotoComponent photoComponent = new PhotoComponent();
public
PhotoFrame
()
{
super
(
"Photothèque"
);
setupUI
();
}
private
void
setupUI
()
{
setPreferredSize
(
new
Dimension
(
600
,
400
));
add
(
createMenuBar
(),
BorderLayout
.
NORTH
);
add
(
createToolbar
(),
BorderLayout
.
WEST
);
add
(
statusBar
,
BorderLayout
.
SOUTH
);
//add(photoComponent, BorderLayout.CENTER);
pack
();
}
private
JToggleButton
createCategory
(
String
category
){
JToggleButton
b
=
new
JToggleButton
(
category
);
b
.
setBackground
(
new
Color
(
99
,
170
,
166
));
b
.
setForeground
(
Color
.
WHITE
);
b
.
setBorderPainted
(
false
);
b
.
setPreferredSize
(
new
Dimension
(
80
,
20
));
b
.
setFont
(
Font
.
getFont
(
Font
.
MONOSPACED
));
b
.
addMouseListener
(
new
MouseAdapter
()
{
public
void
mouseEntered
(
MouseEvent
e
)
{
b
.
setBackground
(
new
Color
(
62
,
148
,
144
));
}
public
void
mouseExited
(
MouseEvent
e
)
{
b
.
setBackground
(
new
Color
(
99
,
170
,
166
));
}
});
return
b
;
}
private
JScrollPane
createToolbar
(){
JToolBar
tb
=
new
JToolBar
(
JToolBar
.
VERTICAL
);
JLabel
label
=
new
JLabel
(
"Categories"
);
tb
.
add
(
label
);
String
[]
categories
=
{
"People"
,
"Places"
,
"Food"
,
"Fashion"
,
"Fun"
,
"Animals"
,
"Sport"
,
"School"
};
for
(
int
i
=
0
;
i
<
categories
.
length
;
i
++
){
tb
.
add
(
createCategory
(
categories
[
i
]));
}
tb
.
setBackground
(
new
Color
(
99
,
170
,
166
));
label
.
setForeground
(
Color
.
black
);
tb
.
setFloatable
(
false
);
tb
.
setRollover
(
true
);
JScrollPane
scroll
=
new
JScrollPane
(
tb
);
return
scroll
;
}
private
JMenuBar
createMenuBar
(){
JMenuBar
mb
=
new
JMenuBar
();
mb
.
add
(
createFile
());
mb
.
add
(
createView
());
return
mb
;
}
private
JMenu
createView
(){
JMenu
menu
=
new
JMenu
(
"View"
);
ButtonGroup
group
=
new
ButtonGroup
();
JRadioButtonMenuItem
browser
=
new
JRadioButtonMenuItem
(
"Browser"
);
browser
.
setSelected
(
true
);
browser
.
addActionListener
(
e
->
statusBar
.
setText
(
"Displays browser view"
));
group
.
add
(
browser
);
menu
.
add
(
browser
);
JRadioButtonMenuItem
photo
=
new
JRadioButtonMenuItem
(
"Photo viewer"
);
photo
.
addActionListener
(
e
->
statusBar
.
setText
(
"Displays photo view"
));
group
.
add
(
photo
);
menu
.
add
(
photo
);
return
menu
;
}
private
JMenu
createFile
()
{
JMenu
menu
=
new
JMenu
(
"File"
);
menu
.
add
(
importation
());
menu
.
add
(
delete
());
menu
.
add
(
quit
());
return
menu
;
}
private
JMenuItem
quit
(){
JMenuItem
quit
=
new
JMenuItem
(
"Quit"
);
quit
.
addActionListener
(
e
->
System
.
exit
(
0
));
return
quit
;
}
private
JMenuItem
delete
(){
JMenuItem
delete
=
new
JMenuItem
(
"Delete"
);
delete
.
addActionListener
(
e
->
statusBar
.
setText
(
"Deletes photo"
));
return
delete
;
}
private
JMenuItem
importation
()
{
JMenuItem
importation
=
new
JMenuItem
(
"Import"
);
addPhoto
();
return
importation
;
}
private
void
addPhoto
()
{
JFileChooser
fileChooser
=
new
JFileChooser
();
fileChooser
.
setDialogTitle
(
"Choose picture"
);
importation
().
addActionListener
(
e
->
fileChooser
.
showOpenDialog
(
new
JFrame
()));
fileChooser
.
setFileSelectionMode
(
JFileChooser
.
FILES_ONLY
);
fileChooser
.
setFileFilter
(
new
FileNameExtensionFilter
(
"Picture files"
,
"jpg"
,
"png"
,
"jpeg"
));
String
file
=
fileChooser
.
getSelectedFile
().
getPath
();
//try {
// photoComponent.getModel().loadImage(new File(file));
//}
//catch (IOException exception) {
// exception.printStackTrace();
}
}