1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
| import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Borders2UndecoFrame extends JFrame{
JLabel label1 = new JLabel("Bienvenue!", JLabel.CENTER);
JLabel label2 = new JLabel("Je suis une fenetre speciale!", JLabel.CENTER);
JLabel label3 = new JLabel("Et transparente en plus ;)", JLabel.CENTER);
JButton minimize = new JButton("_");
JButton maximize = new JButton("[]");
JButton close = new JButton("X");
private int X;
private int Y;
public Borders2UndecoFrame(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(480, 320));
JPanel content = new JPanel();
content.setLayout(new BorderLayout());
JPanel panel_dessus = new JPanel();
panel_dessus.setLayout(new BorderLayout());
JPanel panel_dessus_bts = new JPanel();
panel_dessus_bts.setOpaque(false);
panel_dessus.setBackground(Color.BLUE);
panel_dessus_bts.add(minimize);
panel_dessus_bts.add(maximize);
panel_dessus_bts.add(close);
panel_dessus.add(panel_dessus_bts, BorderLayout.EAST);
JLabel label_titre = new JLabel("Titre du programme");
label_titre.setForeground(Color.WHITE);
panel_dessus.add(label_titre, BorderLayout.WEST);
add(panel_dessus, BorderLayout.NORTH);
content.add(label1, BorderLayout.NORTH);
content.add(label2, BorderLayout.SOUTH);
JTextArea textarea = new JTextArea();
textarea.setText("Sed ut perspiciatis unde omnis iste natus error\r\n sit voluptatem accusantium doloremque laudantium, totam rem \r\naperiam, eaque ipsa quae ab illo inventore veritatis et \r\nquasi architecto beatae vitae dicta sunt explicabo.\r\n Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit\r\n esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?");
JScrollPane scrollPane = new JScrollPane(textarea);
content.add(scrollPane, BorderLayout.CENTER);
setUndecorated(true);
getRootPane().setBorder(BorderFactory.createMatteBorder(4, 4, 4, 4, Color.GREEN));
content.setBorder(BorderFactory.createMatteBorder(4, 4, 4, 4, Color.RED));
add(content, BorderLayout.CENTER);
setVisible(true);
content.setOpaque(false);
content.setBackground(new Color(127,127,127,0));
setBackground(new Color(127,127,127,128));
// Gestion des boutons et maximisation + deplacement de la fenetre
close.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
dispose();
}
});
minimize.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
setState(Frame.ICONIFIED);
}
});
maximize.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
setExtendedState(MAXIMIZED_BOTH);
}
});
panel_dessus.addMouseMotionListener(new MouseMotionListener(){
@Override
public void mouseDragged(MouseEvent e)
{
int X2 = e.getXOnScreen();
int Y2 = e.getYOnScreen();
int dx = X2 - X;
int dy = Y2 - Y;
System.err.println("dx = "+dx);
System.err.println("dy = "+dy);
X = X2;
Y = Y2;
setLocation(getLocation().x+dx, getLocation().y+dy);
}
@Override
public void mouseMoved(MouseEvent e)
{
// TODO Auto-generated method stub
}
});
panel_dessus.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e)
{
if (e.getClickCount()==2)
{
if (getExtendedState()!=MAXIMIZED_BOTH)
setExtendedState(MAXIMIZED_BOTH);
else
setExtendedState(NORMAL);
}
}
@Override
public void mousePressed(MouseEvent e)
{
X = e.getXOnScreen();
Y = e.getYOnScreen();
System.err.println("X = "+X);
System.err.println("Y = "+Y);
}
@Override
public void mouseReleased(MouseEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e)
{
// TODO Auto-generated method stub
}
});
}
public static void main(String[] args) {
new Borders2UndecoFrame();
}
} |
Partager