для начала, я просто скажу, что я новичок в Java.
Я хочу создать простое приложение Java с Jframe и некоторыми кнопками, которые делают снимки экрана любых выбранных мониторов. Я использую MacBook и 2 монитора (с разными разрешениями, чем у Mac). Я буду использовать слушатели действий для каждой кнопки. Я искал в сети и увидел, что библиотека GraphicsEnvironment может это сделать (сейчас она обнаруживает все 3 монитора). Итак, как я могу назначить каждый монитор кнопкам Screen1 / 2/3 (вероятно, Screen 1 будет монитором по умолчанию, который является Mac) И функциональность будет такой: если выбран Screen 2, при нажатии кнопки Take Screenshot, только монитор2 будут захвачены. Кроме того, еще один новый вопрос: что я делаю не так для кнопки i ++?
Ниже приведен "пустой" созданный jframe.
Спасибо.
import java.awt.*;
import javax.swing.JTextField;
import java.awt.GraphicsEnvironment;
import java.awt.GraphicsDevice;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import static java.lang.String.*;
public class Main {
public static void main(String[] args) {
try {
// Get local graphics environment
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
// Returns an array of all of the screen GraphicsDevice objects.
GraphicsDevice[] devices = env.getScreenDevices();
int numberOfScreens = devices.length;
System.out.println("Number of available screens = " + numberOfScreens);
} catch (HeadlessException e) {
// We'll get here if no screen devices was found.
e.printStackTrace();
}
// Jframe module
JFrame frame = new JFrame("ScreenShot");
frame.setTitle("Screenshot");
JLabel cadru1 = new JLabel("Step:");
JTextField text1 = new JTextField("1");
JButton plus1 = new JButton("+");
JLabel cadru2 = new JLabel("SubStep:");
JTextField text2 = new JTextField("1");
JButton plus2 = new JButton("+");
JButton scr1 = new JButton("Screen 1");
JButton scr2 = new JButton("Screen 2");
JButton scr3 = new JButton("Screen 3");
JButton path = new JButton("Set Path");
JButton Take = new JButton("Take ScreenShot");
frame.add(cadru1);
frame.add(text1);
frame.add(plus1);
frame.add(cadru2);
frame.add(text2);
frame.add(plus2);
frame.add(scr1);
frame.add(scr2);
frame.add(scr3);
frame.add(path);
frame.add(Take);
frame.setBackground(Color.DARK_GRAY);
Take.setForeground(Color.red);
frame.setLayout(new GridLayout(4, 3));
frame.setSize(200, 400);
frame.setVisible(true);
frame.pack();
frame.setVisible(true);
public void actionPerformed(ActionEvent) {
plus1++;
cadru1.setText("1" + plus1 );
})
}
}