2015-06-12 3 views
-1

В java, Мои кнопки окружены белыми, толстыми границами, которые появляются только в том случае, когда у меня есть изображение в jlabel для фона.(Java) Есть белые границы вокруг всех моих кнопок

Пример: enter image description here

Проблема здесь состоит в том, что белые границы идут вокруг всех моих кнопок, что делает его выглядеть ужасно. Предполагаемое использование было для кнопок, чтобы просто перейти на изображение, как это изображение:

enter image description here

Вот мой код:

public class Gui extends JFrame { 
    private JTextField TextField; 
    private JButton Hi, Bye, Exit; 
    private JPanel Panel, Panel1, Panel2; 
    private JLabel label; 
      public Gui() { 
      super("My Program"); 

      TextField = new JTextField(""); 
      TextField.setEditable(false); 

      Hi = new JButton("Hi"); 
      Bye = new JButton("Bye"); 
      Exit = new JButton("Exit"); 

      Actions a = new Actions(); 

      Hi.addActionListener(a); 
      Bye.addActionListener(a); 
      Exit.addActionListener(a); 

      Dimension tfd = new Dimension(780, 25); 
      Dimension bd = new Dimension (75, 25); 
      Dimension lpd = new Dimension (800, 600); 

      TextField.setPreferredSize(tfd); 

      Hi.setPreferredSize(bd); 
      Bye.setPreferredSize(bd); 
      Exit.setPreferredSize(tfd); 

      ImageIcon image = new ImageIcon("C:/Users/Dakota/Desktop/Coding/Coding/img/Background.png"); 
      label = new JLabel(image); 

      Panel = new JPanel(); 
      this.setContentPane(label); 
      this.add(Panel); 
      this.setLayout(new FlowLayout()); 
      Panel.add(TextField); 
      Panel1 = new JPanel(); 
      this.add(Panel1); 
      Panel1.add(Hi); 
      Panel1.add(Bye); 
      Panel2 = new JPanel(); 
      this.add(Panel2); 
      Panel2.add(Exit); 
} 
+4

[Код пожалуйста] (http://stackoverflow.com/help/mcve) – Reimeus

+1

У вас есть JButtons в JPanel, который по умолчанию непрозрачен. Вызовите 'setOpaque (false)' на этом маленьком контейнере/JPanel. –

+0

Большое спасибо! Я сделаю это, как только вернусь домой и отвечу, если это сработает или нет :-) – Kenjinful

ответ

1

Ваша проблема кажется, что вы добавляете в свой JPanels GUI и не меняя непрозрачного свойства. Это свойство по умолчанию истинно, что означает, что JPanel будет рисовать фон, который визуально покрывает все, что находится под ним, но если вы установите его на false, вызывая myPanel.setOpaque(false);, то все компоненты, находящиеся ниже JPanel, будут отображаться. Это справедливо для большинства компонентов Swing, хотя это не так просто для компонентных компонентов, таких как JScrollPanes и JTextComponents.

+0

Большое спасибо! Я просто попробовал, и это сработало! :-) – Kenjinful

+0

@ Kenjinful: добро пожаловать. Пожалуйста, посмотрите на [кто-то отвечает] (http://stackoverflow.com/help/someone-answers). –

Смежные вопросы