У меня есть этот код в ejb
for (PayrollEntry pe : payroll.getEntries()) {
recalculatePayrollEntry(pe);
}
CalculateTotals(payroll);
, который вызывает этот асинхронный метод
@Asynchronous
public void recalculatePayrollEntry(PayrollEntry pe) {
// Calculate Payroll Entry;
pe.setEarningsEntries(newEarnings);
}
Какой способ лучше всего подождать до тех пор, пока все эти пересчеты не будут выполнены, прежде чем вызывать CalcingedTotals?
-121--1731083-
Пока мне удалось максимально избежать использования GridBagLayout
(по коду руки), но на этот раз я не смог избежать этого, и я читаю учебник SUN GridBagLayout
Пока дела идут плохо. Думаю, я кое-что не понимаю.
Например, я пробую следующий код (аналогичный коду в публикации SUN):
public class MainFrame extends JFrame {
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame
*/
public MainFrame() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container mainContainer = getContentPane();
mainContainer.setLayout(new GridBagLayout());
//add label
JLabel someLabel = new JLabel("Label 1:");
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = 0;
//constraints.anchor = GridBagConstraints.FIRST_LINE_START;
//constraints.weightx = 0.5;
mainContainer.add(someLabel, constraints);
JTextField someText = new JTextField(30);
constraints = new GridBagConstraints();
constraints.gridx = 1;
constraints.gridy = 0;
constraints.weightx = 0.5;
mainContainer.add(someText, constraints);
//
}
}
Я получаю метку и текстовое поле один рядом с другим в центре кадра.
Но я ожидал, что они появятся в верхнем левом углу, так как gridx и gridy равно 0 для метки.
Даже если задать constraints.anchor = GridBagConstraints.FIRST_LINE_START;
, результат будет тем же самым.
Я ошибаюсь здесь?
Из сообщения SUN
Укажите строку и столбец в левом верхнем углу компонента. крайний левый столбец имеет адрес gridx = 0, а верхняя строка - адрес gridy = 0.