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

Kol5a4ok

Активный участник
Баллы
68
Имя в Minecraft
Kol5a4ok
мне нужна что бы панель(которая на скрине) была прозрачной но у меня не как не получается помогите!Вот код!
Java:
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();
    }
}
67a62244fdd008447ce725fb66c8a29e.jpg
 
Боже мой, просто открой папку с текстурами лаунчера, найди нужный и отредактируй его G_G
 
Java:
panel.setOpaque(false);
 
Назад
Верх