Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.EventQueue;
- import java.awt.Graphics;
- import java.awt.Toolkit;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JComponent;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JMenu;
- import javax.swing.JMenuBar;
- import javax.swing.JMenuItem;
- import javax.swing.JPanel;
- import javax.swing.JSlider;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ChangeListener;
- public class cos2 extends JFrame {
- MojKomponent komponent;
- int n=8;
- int rr=128;
- int gg=128;
- int bb=128;
- public class MojKomponent extends JComponent{
- @Override
- protected void paintComponent(Graphics g) {
- g.setColor(new Color(rr,gg,bb));
- int szer=getWidth();
- int wys=getHeight();
- int x=getWidth()/2;
- int y=getHeight()/2;
- int ax=szer/4;
- int bx=szer*3/4;
- int ay=wys/4;
- int by=wys*3/4;
- g.drawLine(0,y,ax,ay);
- g.drawLine(ax,ay,bx,ay);
- g.drawLine(ax,by,bx,ay);
- g.drawLine(ax,by,bx,by);
- g.drawLine(szer,y,bx,by);
- for(int i=0;i<=n;i++){
- g.drawLine(0+szer*(i+1)/(n+1),ay,0+szer*(i+1)/(n+1),0);
- g.drawLine(0+szer*(i+1)/(n+1),y-wys*(i+1)/(n+1),0+szer*(i+1)/(n+1),0);
- if ((y+wys)-wys*(i+1)/(n+1)<=by) {
- g.drawLine(0+szer*(i+1)/(n+1),(y+wys)-wys*(i+1)/(n+1),0+szer*(i+1)/(n+1),0);
- }
- if (0+szer*(i+1)/(n+1)<=bx && 0+szer*(i+1)/(n+1)>=ax) {
- g.drawLine(0+szer*(i+1)/(n+1),by,0+szer*(i+1)/(n+1),wys-wys*(i+1)/(n+1));
- }
- g.drawLine((x+szer)-szer*(i+1)/(n+1),0+wys*(i+1)/(n+1),szer,0+wys*(i+1)/(n+1));
- if(0+wys*(i+1)/(n+1)>=ay) {
- g.drawLine( x-szer*(i+1)/(n+1),0+wys*(i+1)/(n+1),szer-szer*(i+1)/(n+1),0+wys*(i+1)/(n+1));
- }
- if(0+wys*(i+1)/(n+1)>=by) {
- g.drawLine(0,0+wys*(i+1)/(n+1),szer,0+wys*(i+1)/(n+1));
- }
- }
- super.paintComponent(g);
- }
- }
- public cos2(String string) {
- super(string);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- Toolkit kit=Toolkit.getDefaultToolkit();
- Dimension d=kit.getScreenSize();
- setBounds(d.width/4,d.height/4,d.width/2,d.height/2);
- add(komponent=new MojKomponent());
- //panel na dole
- JPanel panel=new JPanel(new BorderLayout());
- add(panel,BorderLayout.SOUTH);
- //numer
- final JLabel label=new JLabel(getDesc());
- d=label.getPreferredSize();
- d.width*=1.5;
- panel.add(label,BorderLayout.EAST);
- //suwak
- final JSlider slider=new JSlider(1,20,n);
- slider.addChangeListener(new ChangeListener() {
- @Override
- public void stateChanged(ChangeEvent e) {
- n=slider.getValue();
- label.setText(getDesc());
- komponent.repaint();
- }
- });
- panel.add(slider);
- //Menu
- JMenuBar mb= new JMenuBar();
- JMenu m = new JMenu("Plik");
- JMenuItem mi = new JMenuItem("Zamknij");
- mi.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- System.exit(0);
- }
- });
- m.add(mi);
- mb.add(m);
- m = new JMenu("Kolor");
- mi = new JMenuItem("Czerwony");
- mi.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- rr=255;
- gg=0;
- bb=0;
- komponent.repaint();
- }
- });
- m.add(mi);
- mb.add(m);
- mi = new JMenuItem("Zielony");
- mi.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- rr=0;
- gg=255;
- bb=0;
- komponent.repaint();
- }
- });
- m.add(mi);
- mi = new JMenuItem("Niebieski");
- mi.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- rr=0;
- gg=0;
- bb=255;
- komponent.repaint();
- }
- });
- m.add(mi);
- mi = new JMenuItem("Czarny");
- mi.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- rr=0;
- gg=0;
- bb=0;
- komponent.repaint();
- }
- });
- m.add(mi);
- m.add(mi);
- setJMenuBar(mb);
- setVisible(true);
- }
- private String getDesc() {
- return "n="+n;
- }
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- @Override
- public void run() {
- new cos2("okno ");
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement