2016-02-20 4 views
0

У меня есть это упражнение в моем учебнике:используя SetBounds ип ява

В этом упражнении вы будете исследовать простой способ визуализации объекта Rectangle. Метод setBoundsкласса JFrame перемещает окно кадра в заданный прямоугольник. Выполните следующую программу, чтобы визуально показать метод перевода из класса Прямоугольник:

import java.awt.Rectangle; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
public class TranslateDemo 
{ 
public static void main(String[] args) 
{ 
// Construct a frame and show it 
JFrame frame = new JFrame(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setVisible(true); 
// Your work goes here: Construct a rectangle and set the frame bounds 
JOptionPane.showMessageDialog(frame, "Click OK to continue"); 
// Your work goes here: Move the rectangle and set the frame bounds again 
} 
}**** 

Я попробовал это, но это не работает:

**import java.awt.Rectangle; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
public class TranslateDemo 
{ 
    public static void main(String[] args) 
    { 
     // Construct a frame and show it 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
     // Your work goes here: Construct a rectangle and set the frame bounds 

     Rectangle box = new Rectangle(10, 20, 30, 40); 
     System.out.println(""); 
     System.out.println(box); 
     System.out.println(""); 

     JFrame f=new JFrame(); 
     f.setBounds(50, 50, 200 ,200); 


     JOptionPane.showMessageDialog(frame, "Click OK to continue"); 
     // Your work goes here: Move the rectangle and set the frame bounds again 
     box.translate(0,30); 
     System.out.println(box); 
     JOptionPane.showMessageDialog(frame, "Click OK to continue"); 
    } 
}** 

Можете ли вы мне помочь?

+0

Дон» t используйте 'setBounds()' вместо этого, используя менеджеров компоновки. у нас так много макетов. – Satya

+0

@Satya OP пытается расположить и размер 'JFrame', является допустимым использованием' setBounds' – MadProgrammer

+0

Я не думаю, что она использовала его специально ... Я думаю, что сам вопрос –

ответ

2

Давайте начнем с того, что вы создали два экземпляра JFrame ...

// First instance 
JFrame frame = new JFrame(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setVisible(true); 
// Your work goes here: Construct a rectangle and set the frame bounds 

// Second instance 
JFrame f=new JFrame(); 
f.setBounds(50, 50, 200 ,200); 

Первое это то, что видно на экране, а второй нет.

Может быть что-то вроде ...

JFrame frame = new JFrame(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setVisible(true); 
// Your work goes here: Construct a rectangle and set the frame bounds 

Rectangle box = new Rectangle(10, 20, 30, 40); 
f.setBounds(box); 

будет работать лучше.

Любые изменения, внесенные в box не изменит рамки, поскольку JFrame использует свойства из Rectangle установить его свойства и не поддерживает ссылку на исходный Rectangle, вместо этого, вам нужно будет позвонить setBounds снова в порядке для обновления кадров

Как правило, хотя, вы не должны быть установка размера самого кадра, но вместо того, чтобы полагаться на pack, но так как это упражнение, я могу игнорировать его;)

+0

Огромное вам спасибо –

+0

@ RaniaKthiri Надеюсь, что это помогло;) – MadProgrammer

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