2013-03-20 5 views
-1

Я провел последние несколько часов в течение последних двух дней, пытаясь понять, почему я не могу заставить свой графический интерфейс работать правильно. Здесь я прихожу ко всем вам, чтобы увидеть, можете ли вы мне вообще помочь.Java-Eclipse-Пытаюсь использовать JTextArea

Теперь, что я пытаюсь сделать, это текстовая игра, простая? Ну, я хочу использовать кнопки, расположенные в левой части экрана, с вашим здоровьем и всем этим забавным материалом на дне, с основным мясом игры, ТЕКСТом, в центре, но независимо от того, что я сделал не мог заставить его поместиться правильно, затем я наткнулся на pack(), поэтому я попробовал его, и да ... он сделал то, что он должен был делать, к сожалению, сейчас у меня есть ОДИН СЛОВО, а экран крошечный, любые идеи как я мог сделать экран больше и оставаться большим?

Going редактировать это и бросить вам биты и peices моего кода, в том числе для текстового поля (обратите внимание, я использую Java для избиением двух дней, а не на работе)

JTextArea textarea = new JTextArea("example"); 

    frame.add(textarea); 
    //frame.pack(); 

И здесь я у вас есть пакет, потому что я играю с ним.

Что-нибудь еще, что вы, ребята, хотите заглянуть?

+1

разместить код, который вы пытались и сказать, где именно вы столкнулись с проблемой. – SudoRahul

+0

Я пробовал, что и эта штука закричала на меня ... – Kage

+0

ЧТО? (O_o) – SudoRahul

ответ

0

Вы можете попробовать установить нужный размер ваших объектов или панели/кадры сами:

myPanel.preferredSize(new Dimension(1000,500)); 

или

myFrame.preferredSize(new Dimension(1000,500)); 

или

myTextArea.preferredSize(new Dimension(300,200)); 
+1

Нет. Используйте «JTextArea # setRows/Columns», чтобы лучше использовать предпочтительный размер. Если это вообще возможно, избегайте использования 'setPreferredSize'. Если OP не использует менеджеров компоновки, это не будет иметь никакого эффекта. – MadProgrammer

+2

На самом деле, нет никакого 'component.preferredSize (Dimension)' - пожалуйста, будьте точны (даже если ответ такой же субоптимальный, как и этот, по причинам для _not_ используйте 'setPreferredSize (Dimension)' [см. Недавний QA] (http : //stackoverflow.com/a/7229519/203657)). – kleopatra

0

пакет будет действительно просто сделать кадра или панели, только настолько большой, насколько это необходимо, чтобы соответствовать компонентам, которые в ней. Попробуйте метод preferredSize() и, возможно, опубликуйте некоторый код, если он все еще не работает.

1

Есть так много вещей, которые можно было бы идя неправильно, не больше кода, трудно точно указать точную проблему ...

Несколько вещей прыгать на ум ...

  • Используйте соответствующую макет менеджеры, даже сложные менеджеры компоновки
  • Предоставить дополнительную информацию JTextArea, чтобы позволить ему определить полезное пространство, например, строки и столбцы
  • Добавьте JTextArea к JScrollPane, чтобы убедиться, что он внезапно не занимают больше места, то на самом деле доступны

enter image description here

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import java.awt.EventQueue; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JProgressBar; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class TestLayout21 { 

    public static void main(String[] args) { 
     new TestLayout21(); 
    } 

    public TestLayout21() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
       } 

       JFrame frame = new JFrame("Testing"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setLayout(new BorderLayout()); 
       frame.add(new TestPane()); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 

    public class TestPane extends JPanel { 

     public TestPane() { 
      setLayout(new BorderLayout()); 

      JPanel actions = new JPanel(new GridBagLayout()); 
      GridBagConstraints gbc = new GridBagConstraints(); 
      gbc.gridwidth = GridBagConstraints.REMAINDER; 
      gbc.fill= GridBagConstraints.HORIZONTAL; 

      actions.add(new JButton("Walk"), gbc); 
      actions.add(new JButton("Run"), gbc); 
      actions.add(new JButton("Jump"), gbc); 
      actions.add(new JButton("Eat"), gbc); 
      actions.add(new JButton("Drink"), gbc); 

      add(actions, BorderLayout.WEST); 
      add(new JProgressBar(), BorderLayout.SOUTH); 

      JTextArea textArea = new JTextArea(20, 40); 
      add(new JScrollPane(textArea)); 

     } 

     @Override 
     public Dimension getPreferredSize() { 
      return new Dimension(200, 200); 
     } 
    } 

}