У меня есть две панели в моем кадре, и я хотел бы установить их под другим, и этот первый должен иметь размер как 9/10 * рамка экрана, а эта вторая 1/10.Два JPanels в JFrame, один под другим
Я попытался с GridLayout (2 строки и один столбец), но я не могу установить их конкретный размер.
Как мне это сделать?
нормально, может быть, я буду писать некоторые мой код:
Я пишу игру - Pacman, и в первой панели есть вся игра, и в этом втором я хотел бы, чтобы отобразить игрок информацию (как оценка, имя и т. д.). Сначала я хотел бы установить на 80% экран, а второй - на 20%.
Что еще нужно изменить размер рамки и все в ней, я должен изменить размер панелей (сохраняя это 80% до 20%) при изменении размера рамки. Я написал этот InitComponents().
package pacman;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import java.awt.Image;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
public class Pacman extends JFrame implements items
{
Image image;
public Pacman()
{
initComponents();
try {
image = ImageIO.read(Pac.class.getResourceAsStream("/img/Pac02.gif"));
} catch (Exception e) {
System.out.println("Blad prz otwieraniu " + e);
System.exit(0);
}
int screen_width = Toolkit.getDefaultToolkit().getScreenSize().width;
int screen_height = Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(screen_width/3, screen_height/3);
this.setLayout(new BorderLayout());
this.getContentPane().add(panel, BorderLayout.CENTER);
this.getContentPane().add(panel2, BorderLayout.PAGE_END);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setIconImage(image);
setTitle("..::Pacman::..");
setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setPreferredSize(new Dimension(416,438));
this.pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void initComponents() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
int width = e.getComponent().getSize().width;
int height = e.getComponent().getSize().height;
panel.setSize(width, height*8/10) ;
panel2.setSize(width, height*2/10);
}
});
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Pacman();
}
});
}
}
Есть один изменчивый, но другой нет? Что находится в двух панелях? –
Вы отправили некоторый код ... но посмотрели ли вы на уже полученные ответы? (Кроме того, вы действительно должны взглянуть на Java [кодовые соглашения] (http://www.oracle.com/technetwork/java/codeconv-138413.html) – amaidment