try {} trap {}
используется, когда существует конкретная ошибка, которую необходимо перехватить. Для более общей ловушки используйте try {} on error {}
.
try {
set fh [open myfile.txt w]
} on error {err res} {
puts "Error on open: $res"
}
Существует также команда catch:
if { [catch {set fh [open myfile.txt w]}] } {
puts "error on open."
}
Необходимо добавить кнопку к другой панели и затем добавить что панель к кадру.
Оказывается, что BorderLayout разворачивает то, что когда-либо компонент находится в середине
Ваш код должен быть похожим на это теперь:
Прежде
public static void main( String [] args ) {
JLabel label = new JLabel("Some info");
JButton button = new JButton("Ok");
JFrame frame = ...
frame.add( label, BorderLayout.NORTH );
frame.add( button , BorderLayout.CENTER );
....
}
Измените его на что-то вроде этого:
public static void main( String [] args ) {
JLabel label = new JLabel("Some info");
JButton button = new JButton("Ok");
JPanel panel = new JPanel();
panel.add( button );
JFrame frame = ...
frame.add( label, BorderLayout.NORTH );
frame.add( panel , BorderLayout.CENTER);
....
}
Прежде/После того, как
Перед http://img372.imageshack.us/img372/2860/beforedl1.png После http://img508.imageshack.us/img508/341/aftergq7.png
Снова :)
import javax.swing.*;
public class TestFrame extends JFrame {
public TestFrame() {
JLabel label = new JLabel("Some info");
JButton button = new JButton("Ok");
Box b = new Box(BoxLayout.Y_AXIS);
b.add(label);
b.add(button);
getContentPane().add(b);
}
public static void main(String[] args) {
JFrame f = new TestFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}