Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Помогите сделать панель прозрачной!

Тема в разделе "[Архив] Помощь", создана пользователем Kol5a4ok, 10 янв 2013.

  1. Автор темы
    Kol5a4ok

    Kol5a4ok Активный участник

    Баллы:
    68
    Skype:
    Diman54730
    Имя в Minecraft:
    Kol5a4ok
    мне нужна что бы панель(которая на скрине) была прозрачной но у меня не как не получается помогите!Вот код!
    Код:
    package net.minecraft;
     
    import kol5a4ok.minecraftmanager.MinecraftBackupManager;
    import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.Checkbox;
    import java.awt.Color;
    import java.awt.Cursor;
    import java.awt.Desktop;
    import java.awt.Font;
    import java.awt.FontMetrics;
    import java.awt.Graphics;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.Insets;
    import java.awt.Label;
    import java.awt.Panel;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.image.VolatileImage;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.URL;
    import java.util.Random;
    import javax.crypto.Cipher;
    import javax.crypto.CipherInputStream;
    import javax.crypto.CipherOutputStream;
    import javax.crypto.SecretKey;
    import javax.crypto.SecretKeyFactory;
    import javax.crypto.spec.PBEKeySpec;
    import javax.crypto.spec.PBEParameterSpec;
    import javax.imageio.ImageIO;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Cursor;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.FontMetrics;
    import java.awt.Graphics;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.Insets;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileFilter;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URISyntaxException;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.nio.channels.FileChannel;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.Properties;
    import java.util.Random;
    import javax.crypto.Cipher;
    import javax.crypto.CipherInputStream;
    import javax.crypto.CipherOutputStream;
    import javax.crypto.SecretKey;
    import javax.crypto.SecretKeyFactory;
    import javax.crypto.spec.PBEKeySpec;
    import javax.crypto.spec.PBEParameterSpec;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFileChooser;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;
    import javax.swing.JTextPane;
    import javax.swing.border.MatteBorder;
    import javax.swing.event.HyperlinkEvent;
    import javax.swing.event.HyperlinkListener;
     
     
     
     
    public class LoginForm extends Panel {
       
        private static final long serialVersionUID = 1L;
       
        private Image bgImage;
        private TextField userName = new TextField(25);
        private Checkbox forceUpdateBox = new Checkbox("Обновление");
        private Button launchButton = new Button("Войти");
        private Label errorLabel = new Label("", 1);
        private Label creditsVersion = new Label("v0.2");
        private Button openManager = new Button("Менеджер сохранений");
        private LauncherFrame launcherFrame;
        private boolean outdated = false;
        private VolatileImage img;
           
           
     
        public LoginForm(LauncherFrame launcherFrame) {
            this.launcherFrame = launcherFrame;
     
            GridBagLayout gbl = new GridBagLayout();
            setLayout(gbl);
     
            add(buildLoginPanel());
            try {
                this.bgImage = ImageIO.read(LoginForm.class.getResource("bg.png")).getScaledInstance(512, 320, 16);
            } catch (IOException e) {
                e.printStackTrace();
            }
     
            readUsername();
           
            this.launchButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    if (LoginForm.this.forceUpdateBox.getState()) {
                        LoginForm.this.launcherFrame.forceUpdate = true;
                    }
                    LoginForm.this.launcherFrame.login(LoginForm.this.userName.getText());
                }
            });
        }
     
        private void readUsername() {
            try {
                File lastLogin = new File(MinecraftUtil.getWorkingDirectory(), "lastlogin");
     
                Cipher cipher = getCipher(2, "passwordfile");
                DataInputStream dis;
               
                if (cipher != null)
                    dis = new DataInputStream(new CipherInputStream(new FileInputStream(lastLogin), cipher));
                else {
                    dis = new DataInputStream(new FileInputStream(lastLogin));
                }
                this.userName.setText(dis.readUTF());
                dis.close();
                }catch (Exception e) {
                    System.out.println("Файл с последним логином отсуствует!");
                }
        }
     
        private void writeUsername() {
            try {
                File lastLogin = new File(MinecraftUtil.getWorkingDirectory(), "lastlogin");
     
                Cipher cipher = getCipher(1, "passwordfile");
                DataOutputStream dos;
               
                if (cipher != null)
                    dos = new DataOutputStream(new CipherOutputStream(new FileOutputStream(lastLogin), cipher));
                else {
                    dos = new DataOutputStream(new FileOutputStream(lastLogin));
                }
               
                dos.writeUTF(this.userName.getText());
                dos.writeUTF("");
                dos.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
     
        private Cipher getCipher(int mode, String password) throws Exception {
            Random random = new Random(43287234L);
            byte[] salt = new byte[8];
            random.nextBytes(salt);
            PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, 5);
     
            SecretKey pbeKey = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(new PBEKeySpec(password.toCharArray()));
            Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
            cipher.init(mode, pbeKey, pbeParamSpec);
            return cipher;
        }
     
        public void update(Graphics g) {
            paint(g);
        }
     
        public void paint(Graphics g2) {
            int w = getWidth() / 2;
            int h = getHeight() / 2;
           
            if ((this.img == null) || (this.img.getWidth(null) != w) || (this.img.getHeight(null) != h)) {
                this.img = createVolatileImage(w, h);
            }
     
            Graphics g = this.img.getGraphics();
           
            for (int x = 0; x <= w * 0; x++) {
                for (int y = 0; y <= h * 0; y++) {
                    g.drawImage(this.bgImage, x, y, null);
                }
            }
           
            g.setColor(new Color(0,0,0,129));
     
            String msg = "";
            g.setFont(new Font(null, 1, 20));
            FontMetrics fm = g.getFontMetrics();
            g.drawString(msg, w / 2 - fm.stringWidth(msg) / 2, h / 2 - fm.getHeight() * 2);
     
            g.dispose();
            g2.drawImage(this.img, 0, 0, w * 2, h * 2, null);
        }
       
        private Panel buildLoginPanel() {
            Panel panel = new Panel() {
               
                private static final long serialVersionUID = 1L;
               
                private Insets insets = new Insets(12, 24, 16, 32);
     
                public Insets getInsets() {
                    return this.insets;
                }
     
                public void update(Graphics g) {
                    paint(g);
                }
     
                public void paint(Graphics g) {
                    super.paint(g);
                   
                    int hOffs = 0;
     
                    g.setColor(new Color(0,0,0,129));
                    g.drawRect(0, 0 + hOffs, getWidth() - 1, getHeight() - 1 - hOffs);
                    g.drawRect(1, 1 + hOffs, getWidth() - 3, getHeight() - 3 - hOffs);
                    g.setColor(new Color(0,0,0,129));
     
                    g.drawRect(2, 2 + hOffs, getWidth() - 5, getHeight() - 5 - hOffs);
                }
            };
       
            panel.setForeground(Color.BLACK);
                    panel.setBackground(new Color(50,50,50,50));
            BorderLayout layout = new BorderLayout();
            layout.setHgap(0);
            layout.setVgap(0);
            panel.setLayout(layout);
     
            GridLayout gl1 = new GridLayout(0, 1);
            GridLayout gl2 = new GridLayout(0, 1);
            gl1.setVgap(2);
            gl2.setVgap(2);
            Panel titles = new Panel(gl1);
            Panel values = new Panel(gl2);
     
            titles.add(new Label("Имя:", 2));
            titles.add(new Label("", 2));
            values.add(this.userName);
            values.add(this.forceUpdateBox);
     
            panel.add(titles, "West");
            panel.add(values, "Center");
     
            Panel loginPanel = new Panel(new BorderLayout());
     
            Panel registerPanel = new Panel(new BorderLayout());
           
            try {
                if (this.outdated) {
                    Label accountLink = new Label("Обновите Лаунчер!") {
                        private static final long serialVersionUID = 0L;
     
                        public void paint(Graphics g) {
                            super.paint(g);
     
                            int x = 0;
                            int y = 0;
     
                            FontMetrics fm = g.getFontMetrics();
                           
                            int width = fm.stringWidth(getText());
                            int height = fm.getHeight();
     
                            if (getAlignment() == 0)
                                x = 0;
                            else if (getAlignment() == 1)
                                x = getBounds().width / 2 - width / 2;
                            else if (getAlignment() == 2) {
                                x = getBounds().width - width;
                                }
                            y = getBounds().height / 2 + height / 2 - 1;
     
                            g.drawLine(x + 2, y, x + width - 2, y);
                        }
                       
                        public void update(Graphics g) {
                            paint(g);
                        }
                    };
                   
                    accountLink.setCursor(Cursor.getPredefinedCursor(12));
                    accountLink.addMouseListener(new MouseAdapter() {
                        public void mousePressed(MouseEvent arg0) {
                            try {
                                Desktop.getDesktop().browse(new URL("http://www.minecraft.net/download.jsp").toURI());
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    });
                   
                    accountLink.setForeground(new Color(0, 0, 0, 129));
                    registerPanel.add(accountLink, "West");
                    registerPanel.add(new Panel(), "Center");
                } else {
                    Label accountLink = new Label("Need account?") {
                        private static final long serialVersionUID = 0L;
     
                        public void paint(Graphics g) {
                            super.paint(g);
     
                            int x = 0;
                            int y = 0;
     
                            FontMetrics fm = g.getFontMetrics();
                           
                            int width = fm.stringWidth(getText());
                            int height = fm.getHeight();
     
                            if (getAlignment() == 0)
                                x = 0;
                            else if (getAlignment() == 1)
                                x = getBounds().width / 2 - width / 2;
                            else if (getAlignment() == 2) {
                                x = getBounds().width - width;
                                }
                            y = getBounds().height / 2 + height / 2 - 1;
     
                            g.drawLine(x + 2, y, x + width - 2, y);
                        }
     
                        public void update(Graphics g) {
                            paint(g);
                        }
                    };
                   
                    accountLink.setCursor(Cursor.getPredefinedCursor(12));
                    accountLink.addMouseListener(new MouseAdapter() {
                        public void mousePressed(MouseEvent arg0) {
                            try {
                                Desktop.getDesktop().browse(new URL("http://www.minecraft.net/register.jsp").toURI());
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    });
                   
                    accountLink.setForeground(new Color(0,0,0,129));
                    registerPanel.add(this.creditsVersion, "East");
                    registerPanel.add(new Panel(), "East");
                }
            } catch (Error localError) {}
           
            loginPanel.add(registerPanel, "Center");
            loginPanel.add(this.launchButton, "Center");
            Panel anjoPanel = new Panel();
           
            this.openManager.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    new MinecraftBackupManager().setVisible(true);
                }
            });
           
           
            loginPanel.add(anjoPanel, "South");
            panel.add(loginPanel, "South");
     
            this.errorLabel.setFont(new Font(null, 2, 16));
            this.errorLabel.setForeground(new Color(8388608));
           
            panel.add(this.errorLabel, "North");
     
            return panel;
        }
     
        public void setError(String errorMessage) {
            removeAll();
            add(buildLoginPanel());
           
            this.errorLabel.setText(errorMessage);
            validate();
        }
     
        public void loginOk() {
            writeUsername();
        }
    }
    [​IMG]
     
  2. Хостинг MineCraft
    <
  3. Akulko

    Akulko Старожил Пользователь

    Баллы:
    103
    Skype:
    Akulkonama
    Боже мой, просто открой папку с текстурами лаунчера, найди нужный и отредактируй его G_G
     
  4. alex55i

    alex55i Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    alex55i
    Код:
    panel.setOpaque(false);
     
  5. Автор темы
    Kol5a4ok

    Kol5a4ok Активный участник

    Баллы:
    68
    Skype:
    Diman54730
    Имя в Minecraft:
    Kol5a4ok
    куда это вставить?
     
  6. TheAnton878

    TheAnton878 Активный участник Пользователь

    Баллы:
    78
    лол, это панель вроде как кодом нарисована
    квадрат + рамка
     
  7. Автор темы
    Kol5a4ok

    Kol5a4ok Активный участник

    Баллы:
    68
    Skype:
    Diman54730
    Имя в Minecraft:
    Kol5a4ok
    я прописываю но оно помечает как неизвестную команду может надо прописать что-то в импорт?
     
  8. alex55i

    alex55i Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    alex55i
    Переделывай интерфейс с AWT на Swing
     

Поделиться этой страницей