Commit 19453e1e by Patryk Czarnik

Przykłady Swing

parent f82eb41d
package swing.kalkulator;
import java.awt.Color;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
/**
*
* @author patryk
*/
public class OknoKalkulatora extends javax.swing.JFrame {
/**
* Creates new form OknoKalkulatora
*/
public OknoKalkulatora() {
initComponents();
mojeDodatki();
}
private void mojeDodatki() {
DocumentListener dl = new DocumentListener() {
public void insertUpdate(DocumentEvent evt) {
przelicz();
}
public void removeUpdate(DocumentEvent evt) {
przelicz();
}
public void changedUpdate(DocumentEvent evt) {
przelicz();
}
};
jTextField1.getDocument().addDocumentListener(dl);
jTextField2.getDocument().addDocumentListener(dl);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jComboBox1 = new javax.swing.JComboBox<>();
jButton1 = new javax.swing.JButton();
jTextField3 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Kalkulator");
setResizable(false);
jTextField1.setFont(new java.awt.Font("Dialog", 1, 36)); // NOI18N
jTextField1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
jTextField2.setFont(new java.awt.Font("Dialog", 1, 36)); // NOI18N
jTextField2.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
jComboBox1.setFont(new java.awt.Font("Dialog", 1, 36)); // NOI18N
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "+", "-", "*", "/" }));
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
jButton1.setFont(new java.awt.Font("Dialog", 1, 36)); // NOI18N
jButton1.setText("Oblicz");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jTextField3.setEditable(false);
jTextField3.setFont(new java.awt.Font("Dialog", 1, 36)); // NOI18N
jTextField3.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
jTextField3.setText("0");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 415, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(169, 169, 169)
.addComponent(jTextField3))
.addGroup(layout.createSequentialGroup()
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 414, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 415, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jTextField1, jTextField2});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(20, Short.MAX_VALUE))
);
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButton1, jComboBox1, jTextField1, jTextField2, jTextField3});
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
przelicz();
}//GEN-LAST:event_jButton1ActionPerformed
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
przelicz();
}//GEN-LAST:event_jComboBox1ActionPerformed
private void przelicz() {
if(jTextField1.getText().isEmpty() || jTextField2.getText().isEmpty()) {
jTextField3.setText("");
} else try {
long liczba1 = Long.parseLong(jTextField1.getText());
long liczba2 = Long.parseLong(jTextField2.getText());
// String operacja = jComboBox1.getItemAt(jComboBox1.getSelectedIndex());
String operacja = (String)jComboBox1.getSelectedItem();
long wynik = switch(operacja) {
case "+" -> liczba1 + liczba2;
case "-" -> liczba1 - liczba2;
case "*" -> liczba1 * liczba2;
case "/" -> liczba1 / liczba2;
default -> 0;
};
jTextField3.setText(String.valueOf(wynik));
jTextField3.setForeground(Color.BLUE);
} catch(Exception e) {
jTextField3.setText("BŁĄD");
jTextField3.setForeground(Color.RED);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(OknoKalkulatora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(OknoKalkulatora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(OknoKalkulatora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(OknoKalkulatora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new OknoKalkulatora().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JComboBox<String> jComboBox1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
// End of variables declaration//GEN-END:variables
}
package swing.layout;
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Layout_Border {
private final static Font FONT = new Font("Arial", Font.BOLD, 30);
public static void main(String[] args) {
final JFrame okno = new JFrame();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BorderLayout layout = new BorderLayout();
okno.setLayout(layout);
final JButton button1 = new JButton("A");
button1.setFont(FONT);
okno.add(button1, BorderLayout.CENTER);
final JButton button2 = new JButton("B");
button2.setFont(FONT);
okno.add(button2, BorderLayout.NORTH);
final JButton button3 = new JButton("C");
button3.setFont(FONT);
okno.add(button3, BorderLayout.WEST);
final JButton button4 = new JButton("D");
button4.setFont(FONT);
okno.add(button4, BorderLayout.EAST);
okno.pack();
okno.setVisible(true);
}
}
package swing.layout;
import java.awt.Font;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Layout_Box {
private final static Font FONT = new Font("Arial", Font.BOLD, 30);
public static void main(String[] args) {
final JFrame okno = new JFrame();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BoxLayout layout = new BoxLayout(okno.getContentPane(), BoxLayout.X_AXIS);
okno.setLayout(layout);
final JButton button1 = new JButton("A");
button1.setFont(FONT);
okno.add(button1);
final JButton button2 = new JButton("B");
button2.setFont(FONT);
okno.add(button2);
final JButton button3 = new JButton("C");
button3.setFont(FONT);
okno.add(button3);
final JButton button4 = new JButton("D");
button4.setFont(FONT);
okno.add(button4);
okno.pack();
okno.setVisible(true);
}
}
package swing.layout;
import java.awt.Font;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Layout_BoxY {
private final static Font FONT = new Font("Arial", Font.BOLD, 30);
public static void main(String[] args) {
final JFrame okno = new JFrame();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BoxLayout layout = new BoxLayout(okno.getContentPane(), BoxLayout.Y_AXIS);
okno.setLayout(layout);
final JButton button1 = new JButton("A");
button1.setFont(FONT);
okno.add(button1);
final JButton button2 = new JButton("B");
button2.setFont(FONT);
okno.add(button2);
final JButton button3 = new JButton("C");
button3.setFont(FONT);
okno.add(button3);
final JButton button4 = new JButton("D");
button4.setFont(FONT);
okno.add(button4);
okno.pack();
okno.setVisible(true);
}
}
package swing.layout;
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Layout_Flow {
private final static Font FONT = new Font("Arial", Font.BOLD, 30);
public static void main(String[] args) {
final JFrame okno = new JFrame();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout layout = new FlowLayout();
okno.setLayout(layout);
final JButton button1 = new JButton("A");
button1.setFont(FONT);
okno.add(button1);
final JButton button2 = new JButton("B");
button2.setFont(FONT);
okno.add(button2);
final JButton button3 = new JButton("C");
button3.setFont(FONT);
okno.add(button3);
final JButton button4 = new JButton("D");
button4.setFont(FONT);
okno.add(button4);
final JButton button5 = new JButton("E");
button5.setFont(FONT);
okno.add(button5);
final JButton button6 = new JButton("F");
button6.setFont(FONT);
okno.add(button6);
final JButton button7 = new JButton("G");
button7.setFont(FONT);
okno.add(button7);
final JButton button8 = new JButton("H");
button8.setFont(FONT);
okno.add(button8);
okno.pack();
okno.setVisible(true);
}
}
package swing.layout;
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Layout_Flow2 {
private final static Font FONT = new Font("Arial", Font.BOLD, 30);
public static void main(String[] args) {
final JFrame okno = new JFrame();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout layout = new FlowLayout(FlowLayout.RIGHT, 10, 10);
okno.setLayout(layout);
final JButton button1 = new JButton("A");
button1.setFont(FONT);
okno.add(button1);
final JButton button2 = new JButton("B");
button2.setFont(FONT);
okno.add(button2);
final JButton button3 = new JButton("C");
button3.setFont(FONT);
okno.add(button3);
final JButton button4 = new JButton("D");
button4.setFont(FONT);
okno.add(button4);
final JButton button5 = new JButton("E");
button5.setFont(FONT);
okno.add(button5);
final JButton button6 = new JButton("F");
button6.setFont(FONT);
okno.add(button6);
final JButton button7 = new JButton("G");
button7.setFont(FONT);
okno.add(button7);
final JButton button8 = new JButton("H");
button8.setFont(FONT);
okno.add(button8);
okno.pack();
okno.setVisible(true);
}
}
package swing.layout;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Layout_Grid {
private final static Font FONT = new Font("Arial", Font.BOLD, 30);
public static void main(String[] args) {
final JFrame okno = new JFrame();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout layout = new GridLayout(2, 4, 10, 20);
okno.setLayout(layout);
final JButton button1 = new JButton("A");
button1.setFont(FONT);
okno.add(button1);
final JButton button2 = new JButton("B");
button2.setFont(FONT);
okno.add(button2);
final JButton button3 = new JButton("C");
button3.setFont(FONT);
okno.add(button3);
final JButton button4 = new JButton("D");
button4.setFont(FONT);
okno.add(button4);
final JButton button5 = new JButton("E");
button5.setFont(FONT);
okno.add(button5);
final JButton button6 = new JButton("F");
button6.setFont(FONT);
okno.add(button6);
final JButton button7 = new JButton("G");
button7.setFont(FONT);
okno.add(button7);
final JButton button8 = new JButton("H");
button8.setFont(FONT);
okno.add(button8);
final JButton button9 = new JButton("J");
button9.setFont(FONT);
okno.add(button9);
okno.pack();
okno.setVisible(true);
}
}
package swing.layout;
public class WypiszDostepneStyle {
public static void main(String[] args) {
System.out.println("Oto dostępne style dla Swinga:");
for(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
System.out.println(" * " + info.getName());
}
}
}
package swing.netbeans_na_zajeciach;
import java.time.LocalDateTime;
import javax.swing.JOptionPane;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println("Ola ma psa");
System.out.println(LocalDateTime.now());
JOptionPane.showMessageDialog(null, "Ala ma kota", "Tytuł", JOptionPane.WARNING_MESSAGE);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<Properties>
<Property name="defaultCloseOperation" type="int" value="3"/>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" max="-2" attributes="0">
<Component id="jButton1" max="32767" attributes="0"/>
<Component id="jTextField1" linkSize="1" pref="421" max="32767" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="jComboBox1" min="-2" pref="122" max="-2" attributes="0"/>
<EmptySpace pref="11" max="32767" attributes="0"/>
<Component id="jTextField2" linkSize="1" min="-2" pref="379" max="-2" attributes="0"/>
</Group>
<Component id="jTextField3" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="jComboBox1" linkSize="2" pref="69" max="32767" attributes="0"/>
<Component id="jTextField2" linkSize="2" max="32767" attributes="0"/>
<Component id="jTextField1" linkSize="2" max="32767" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jTextField3" linkSize="2" alignment="3" min="-2" pref="76" max="-2" attributes="0"/>
<Component id="jButton1" linkSize="2" alignment="3" min="-2" pref="76" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="143" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JTextField" name="jTextField1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jTextField1ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JTextField" name="jTextField2">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jTextField2ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JComboBox" name="jComboBox1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="4">
<StringItem index="0" value="+"/>
<StringItem index="1" value="-"/>
<StringItem index="2" value="*"/>
<StringItem index="3" value="/"/>
</StringArray>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jComboBox1ActionPerformed"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="javax.swing.JButton" name="jButton1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
<Property name="text" type="java.lang.String" value="Oblicz"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JTextField" name="jTextField3">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
<Property name="text" type="java.lang.String" value="0"/>
</Properties>
</Component>
</SubComponents>
</Form>
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template
*/
package swing.netbeans_na_zajeciach;
/**
*
* @author kurs
*/
public class Kalkulator extends javax.swing.JFrame {
/**
* Creates new form Kalkulator
*/
public Kalkulator() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jComboBox1 = new javax.swing.JComboBox<>();
jButton1 = new javax.swing.JButton();
jTextField3 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextField1.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jTextField2.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jTextField2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField2ActionPerformed(evt);
}
});
jComboBox1.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "+", "-", "*", "/" }));
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
jButton1.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jButton1.setText("Oblicz");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jTextField3.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jTextField3.setText("0");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 421, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 379, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jTextField3))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jTextField1, jTextField2});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jComboBox1, javax.swing.GroupLayout.DEFAULT_SIZE, 69, Short.MAX_VALUE)
.addComponent(jTextField2)
.addComponent(jTextField1))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(143, Short.MAX_VALUE))
);
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButton1, jComboBox1, jTextField1, jTextField2, jTextField3});
pack();
}// </editor-fold>//GEN-END:initComponents
private void przelicz() {
long liczba1 = Long.parseLong(jTextField1.getText());
long liczba2 = Long.parseLong(jTextField2.getText());
String operacja = (String)jComboBox1.getSelectedItem();
long wynik = switch(operacja) {
case "+" -> liczba1 + liczba2;
case "-" -> liczba1 - liczba2;
case "*" -> liczba1 * liczba2;
case "/" -> liczba1 / liczba2;
default -> 0;
};
jTextField3.setText(String.valueOf(wynik));
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
przelicz();
}//GEN-LAST:event_jButton1ActionPerformed
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
przelicz();
}//GEN-LAST:event_jComboBox1ActionPerformed
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
przelicz();
}//GEN-LAST:event_jTextField1ActionPerformed
private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField2ActionPerformed
przelicz();
}//GEN-LAST:event_jTextField2ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Kalkulator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Kalkulator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Kalkulator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Kalkulator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Kalkulator().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JComboBox<String> jComboBox1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
// End of variables declaration//GEN-END:variables
}
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<Properties>
<Property name="defaultCloseOperation" type="int" value="3"/>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="jCheckBox2" min="-2" max="-2" attributes="0"/>
<Component id="jCheckBox1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="347" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" pref="306" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jTextField1" min="-2" pref="295" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="197" max="-2" attributes="0"/>
<Component id="jComboBox1" min="-2" pref="247" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jSpinner1" min="-2" pref="240" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="23" max="-2" attributes="0"/>
<Component id="jButton1" min="-2" pref="301" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace pref="217" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" pref="38" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jTextField1" min="-2" pref="76" max="-2" attributes="0"/>
<Component id="jComboBox1" min="-2" pref="63" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="jSpinner1" min="-2" pref="69" max="-2" attributes="0"/>
<EmptySpace pref="9" max="32767" attributes="0"/>
<Component id="jCheckBox1" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jCheckBox2" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jButton1" min="-2" pref="54" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="235" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JButton" name="jButton1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
<Property name="text" type="java.lang.String" value="Naci&#x15b;nij mnie"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JCheckBox" name="jCheckBox1">
<Properties>
<Property name="text" type="java.lang.String" value="jCheckBox1"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="jCheckBox2">
<Properties>
<Property name="text" type="java.lang.String" value="jCheckBox2"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="text" type="java.lang.String" value="jLabel1"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="jTextField1">
<Properties>
<Property name="text" type="java.lang.String" value="jTextField1"/>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner1">
</Component>
<Component class="javax.swing.JComboBox" name="jComboBox1">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="4">
<StringItem index="0" value="Item 1"/>
<StringItem index="1" value="Item 2"/>
<StringItem index="2" value="Item 3"/>
<StringItem index="3" value="Item 4"/>
</StringArray>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
</SubComponents>
</Form>
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template
*/
package swing.netbeans_na_zajeciach;
/**
*
* @author kurs
*/
public class PrzykladoweOkno extends javax.swing.JFrame {
/**
* Creates new form PrzykladoweOkno
*/
public PrzykladoweOkno() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jCheckBox1 = new javax.swing.JCheckBox();
jCheckBox2 = new javax.swing.JCheckBox();
jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jSpinner1 = new javax.swing.JSpinner();
jComboBox1 = new javax.swing.JComboBox<>();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jButton1.setText("Naciśnij mnie");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jCheckBox1.setText("jCheckBox1");
jCheckBox2.setText("jCheckBox2");
jLabel1.setText("jLabel1");
jTextField1.setText("jTextField1");
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jCheckBox2)
.addComponent(jCheckBox1))
.addGap(347, 347, 347))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 306, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 295, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(197, 197, 197)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 301, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(217, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE)
.addComponent(jCheckBox1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jCheckBox2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(235, 235, 235))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
System.out.println("a kuku");
}//GEN-LAST:event_jButton1ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(PrzykladoweOkno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(PrzykladoweOkno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(PrzykladoweOkno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(PrzykladoweOkno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new PrzykladoweOkno().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JCheckBox jCheckBox2;
private javax.swing.JComboBox<String> jComboBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JTextField jTextField1;
// End of variables declaration//GEN-END:variables
}
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<Properties>
<Property name="defaultCloseOperation" type="int" value="3"/>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel1" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="jLabel2" min="-2" pref="452" max="-2" attributes="0"/>
<EmptySpace min="0" pref="8" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="jTextField1" min="-2" pref="347" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jButton1" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" pref="72" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="jTextField1" max="32767" attributes="0"/>
<Component id="jButton1" pref="79" max="32767" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="jLabel2" pref="82" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
<Property name="text" type="java.lang.String" value="Jak masz na imi&#x119;?"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="jTextField1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="18" style="0"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jTextField1ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="jButton1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="1"/>
</Property>
<Property name="text" type="java.lang.String" value="OK"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel2">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Arial" size="24" style="0"/>
</Property>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="cc" green="0" red="ff" type="rgb"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Form>
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template
*/
package swing.netbeans_na_zajeciach;
import java.awt.Color;
/**
*
* @author kurs
*/
public class Rozmowa extends javax.swing.JFrame {
/**
* Creates new form Rozmowa
*/
public Rozmowa() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jLabel1.setText("Jak masz na imię?");
jTextField1.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jButton1.setFont(new java.awt.Font("Arial", 1, 24)); // NOI18N
jButton1.setText("OK");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabel2.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
jLabel2.setForeground(new java.awt.Color(255, 0, 204));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 8, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 347, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jTextField1)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
String imie = jTextField1.getText();
jLabel2.setText("Witaj " + imie);
jLabel2.setForeground(Color.MAGENTA);
}//GEN-LAST:event_jButton1ActionPerformed
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
String imie = jTextField1.getText();
jLabel2.setText("Cześć " + imie);
jLabel2.setForeground(Color.BLUE);
}//GEN-LAST:event_jTextField1ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Rozmowa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Rozmowa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Rozmowa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Rozmowa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Rozmowa().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
// End of variables declaration//GEN-END:variables
}
Technologie GUI w Java:
- AWT - prehistoria, ale jego elementy używane przez Swinga
- Swing (Java 1.2/1.3) - najwięcej aplikacji w tym powstało i do dzisiaj to działa
- Java FX - Java 6-8 - obecnie już nie jest częścią Java SE
package swing.podstawy;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class Kolory {
// Za pomocą metod setXXX można zmieniać własności komponentów graficznych, np.
// kolor, rozmiar, itd....
public static void main(String[] args) {
JFrame frame = new JFrame("Nasza apka");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
// Gdybyśmy chcieli zmienić kolor tła całego okna, to w taki sposób:
// frame.getContentPane().setBackground(Color.PINK);
JLabel label1 = new JLabel("Ala ma kota.");
label1.setHorizontalAlignment(SwingConstants.CENTER); // domyślnie jest LEADING
label1.setVerticalAlignment(SwingConstants.CENTER); // domyślnie jest CENTER
label1.setForeground(Color.BLUE);
// label1.setForeground(new Color(0, 0, 255, 128));
label1.setFont(new Font("Arial", Font.BOLD, 40));
// Aby zmienić kolor tła nie wystarczy setBackground
// W przypadku Label itp. komponentów trzeba jeszcze wyłączyć przezroczystość.
label1.setOpaque(true);
// Jeśli chcemy zdefiniować mniej standardowy kolor, to istnieje kilka sposobów:
Color kolorTla;
// gotowa stała
// kolorTla = Color.YELLOW;
// podając wartości trzech "kanałów", czyli trzech barw podstawowych: Red Green Blue
// trzy liczby typu float z zakresu od 0.0 do 1.0
// kolorTla = new Color(0.8f, 1.0f, 0.5f);
// trzy liczby całkowite z zakresu od 0 do 255
kolorTla = new Color(255, 240, 128);
// Czwarty parametr oznacza kanał alfa - stopień przezroczystości (0-przezroczyste 255-nieprzezroczyste) - to ma sens gdy nakładamy kilka obrazów (warstw) na siebie
//kolorTla = new Color(255, 240, 128, 128);
// jedna liczba całkowita, która zapis szesnastkowy odpowiada takiemu kodowaniu:
// 0xRRGGBB gdzie RR GG BB to są wartości poszczególnych barw, każda w zakresie
// od 00 do FF
// kolorTla = new Color(0xFFF080);
// można też odkodować zapis CSS-owy
//kolorTla = Color.decode("#FFF080");
label1.setBackground(kolorTla);
frame.add(label1);
frame.setVisible(true);
}
}
package swing.podstawy;
import javax.swing.JFrame;
public class Okno0 {
public static void main(String[] args) {
JFrame okno = new JFrame();
okno.setVisible(true);
}
}
package swing.podstawy;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Okno1 {
public static void main(String[] args) {
JFrame okno = new JFrame("Nasza apka");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setSize(600, 400);
JLabel label = new JLabel("Hello world");
okno.add(label);
okno.setVisible(true);
}
}
package swing.podstawy;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class Okno3 {
public static void main(String[] args) {
JFrame okno = new JFrame("Nasza apka");
okno.setSize(400, 300);
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// po zamknięciu okna zostanie wyłączona cała aplikacja
// do okna dodajemy komponent - JLabel, czyli fragment tekstu
JLabel label1 = new JLabel("Hello world");
// za pomocą różnych operacji set możemy wpłynąć na wygląd
label1.setHorizontalAlignment(SwingConstants.CENTER);
label1.setForeground(Color.RED);
label1.setFont(new Font("Arial", Font.BOLD, 40));
// ustawienie koloru tła:
label1.setOpaque(true);
// label1.setBackground(Color.YELLOW);
// samodzielne utworzenie koloru - jest kilka możliwości, a ja podam dwie:
// - wartości R G B jako liczby od 0 do 255
// label1.setBackground(new Color(0, 200, 255));
// - jedna liczba całkowita, w której zapisie szestanstkowym kolejne cyfry oznaczają 0xRRGGBB
label1.setBackground(new Color(0xFFFFAA));
okno.add(label1);
okno.setVisible(true);
}
}
package swing.podstawy;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class Okno4 {
public static void main(String[] args) {
JFrame okno = new JFrame("Nasza aplikacja");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setSize(800, 600);
JLabel label1 = new JLabel("Hello world");
label1.setFont(new Font("Arial", Font.BOLD, 40));
label1.setForeground(Color.BLUE);
label1.setHorizontalAlignment(SwingConstants.CENTER);
okno.add(label1);
JLabel label2 = new JLabel("Goodbye cruel world");
label2.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 40));
label2.setForeground(Color.RED);
label2.setHorizontalAlignment(SwingConstants.CENTER);
okno.add(label2);
JButton button1 = new JButton("OK");
button1.setFont(new Font("Arial", Font.BOLD, 40));
button1.setForeground(Color.GREEN);
button1.setHorizontalAlignment(SwingConstants.CENTER);
okno.add(button1);
// w tej wersji widać tylko guzik - bo domyślny layout manager zastępuje "centralny" komponent nowym komponentem
okno.setVisible(true);
}
}
package swing.podstawy;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class Okno4a {
public static void main(String[] args) {
JFrame okno = new JFrame("Nasza aplikacja");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setSize(800, 600);
JLabel label1 = new JLabel("Hello world");
label1.setFont(new Font("Arial", Font.BOLD, 40));
label1.setForeground(Color.BLUE);
label1.setHorizontalAlignment(SwingConstants.CENTER);
okno.add(label1);
JLabel label2 = new JLabel("Goodbye cruel world");
label2.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 40));
label2.setForeground(Color.RED);
label2.setHorizontalAlignment(SwingConstants.CENTER);
okno.add(label2, "South");
JButton button1 = new JButton("OK");
button1.setFont(new Font("Arial", Font.BOLD, 40));
button1.setForeground(Color.GREEN);
button1.setHorizontalAlignment(SwingConstants.CENTER);
okno.add(button1, "West");
okno.setVisible(true);
}
}
package swing.podstawy;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.LayoutManager;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Okno4b_Border {
public static void main(String[] args) {
JFrame frame = new JFrame("Nasza apka");
frame.setSize(600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Tutaj BorderLayout wskazujemy jawnie. W parametrach można podać odstęp
// LayoutManager layout = new BorderLayout();
LayoutManager layout = new BorderLayout(10, 25);
frame.setLayout(layout);
JLabel label1 = new JLabel("Hello world");
label1.setHorizontalAlignment(JLabel.CENTER);
// label1.setVerticalAlignment(JLabel.TOP);
label1.setFont(new Font("Arial", Font.BOLD, 40));
label1.setForeground(Color.BLUE);
label1.setOpaque(true);
label1.setBackground(Color.YELLOW);
frame.add(label1);
JButton button1 = new JButton("Guzik 1");
button1.setFont(new Font("Arial", Font.BOLD, 32));
// frame.add(button1, "North");
frame.add(button1, BorderLayout.NORTH);
JButton button2 = new JButton("Guzik 2");
button2.setFont(new Font("Arial", Font.BOLD, 32));
frame.add(button2, BorderLayout.SOUTH);
frame.setVisible(true);
}
}
package swing.podstawy;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.LayoutManager;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Okno4c_Flow {
public static void main(String[] args) {
JFrame frame = new JFrame("Nasza apka");
frame.setSize(600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// LayoutManager layout = new FlowLayout();
LayoutManager layout = new FlowLayout(FlowLayout.CENTER, 20, 10);
frame.setLayout(layout);
JLabel label1 = new JLabel("Hello world");
label1.setHorizontalAlignment(JLabel.CENTER);
// label1.setVerticalAlignment(JLabel.TOP);
label1.setFont(new Font("Arial", Font.BOLD, 40));
label1.setForeground(Color.BLUE);
label1.setOpaque(true);
label1.setBackground(Color.YELLOW);
frame.add(label1);
JLabel label2 = new JLabel("Ala ma kota");
label2.setFont(new Font("Arial", Font.BOLD, 40));
frame.add(label2);
JButton button1 = new JButton("Guzik 1");
button1.setFont(new Font("Arial", Font.BOLD, 32));
frame.add(button1);
JButton button2 = new JButton("Guzik 2");
button2.setFont(new Font("Arial", Font.BOLD, 32));
frame.add(button2);
frame.setVisible(true);
}
}
package swing.podstawy;
import java.awt.Color;
import java.awt.Font;
import java.awt.LayoutManager;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Okno4d_Box {
// Tu używam już innego layoutu - BoxLayout
public static void main(String[] args) {
System.out.println("Początek main");
JFrame okno = new JFrame("Nasza apka");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setSize(600, 400);
LayoutManager layout = new BoxLayout(okno.getContentPane(), BoxLayout.Y_AXIS);
okno.setLayout(layout);
JLabel label1 = new JLabel("Ala ma kota");
label1.setHorizontalAlignment(JLabel.CENTER);
label1.setFont(new Font("Arial", Font.BOLD, 30));
label1.setForeground(Color.RED);
okno.add(label1);
JLabel label2 = new JLabel("Ola ma psa");
label2.setHorizontalAlignment(JLabel.RIGHT);
label2.setFont(new Font("Arial", Font.ITALIC, 30));
label2.setForeground(Color.BLUE);
okno.add(label2);
JButton button1 = new JButton("Kliknij mnie");
button1.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 30));
button1.setForeground(Color.GREEN);
okno.add(button1);
okno.setVisible(true);
System.out.println("Koniec main");
}
}
package swing.podstawy;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Okno4e_Grid {
public static void main(String[] args) {
System.out.println("Początek main");
JFrame okno = new JFrame("Nasza apka");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setSize(600, 400);
LayoutManager layout = new GridLayout(2, 2);
okno.setLayout(layout);
JLabel label1 = new JLabel("Ala ma kota");
label1.setHorizontalAlignment(JLabel.CENTER);
label1.setFont(new Font("Arial", Font.BOLD, 30));
label1.setForeground(Color.RED);
okno.add(label1);
JLabel label2 = new JLabel("Ola ma psa");
label2.setHorizontalAlignment(JLabel.RIGHT);
label2.setFont(new Font("Arial", Font.ITALIC, 30));
label2.setForeground(Color.BLUE);
okno.add(label2);
JButton button1 = new JButton("Kliknij mnie");
button1.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 30));
button1.setForeground(Color.GREEN);
okno.add(button1);
JButton button2 = new JButton("Guzik 2");
button2.setFont(new Font("Arial", Font.BOLD, 30));
button2.setForeground(Color.MAGENTA);
okno.add(button2);
okno.setVisible(true);
System.out.println("Koniec main");
}
}
package swing.rysowanie;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.concurrent.ThreadLocalRandom;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.Timer;
public class OknkoZPilka {
private static final Font FONT_GUZIKOW = new Font("Dialog", Font.BOLD, 20);
private JFrame frame;
private Timer spadanie;
private PanelGraficzny panelGraficzny;
private JToggleButton tglbtnSpadaj;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
OknkoZPilka window = new OknkoZPilka();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public OknkoZPilka() {
initialize();
mojeUstawienia();
}
private void mojeUstawienia() {
spadanie = new Timer(500, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(tglbtnSpadaj.isSelected()) {
panelGraficzny.wDol();
}
}
});
spadanie.start();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 1075, 724);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panelGraficzny = new PanelGraficzny();
panelGraficzny.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent ev) {
switch(ev.getButton()) {
case MouseEvent.BUTTON1:
panelGraficzny.ustawPolozenie(ev.getX(), ev.getY());
break;
case MouseEvent.BUTTON3:
panelGraficzny.zmienKolor();
break;
}
}
});
// TODO :)
// panelGraficzny.addKeyListener(new KeyAdapter() {
// @Override
// public void keyPressed(KeyEvent evt) {
// switch(evt.getKeyChar()) {
// case 'a': panelGraficzny.wLewo(); break;
// case 'd': panelGraficzny.wPrawo(); break;
// }
// }
// });
panelGraficzny.setBackground(Color.WHITE);
JPanel panelGuzikow = new JPanel();
GroupLayout groupLayout = new GroupLayout(frame.getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup()
.addContainerGap()
.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
.addComponent(panelGraficzny, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 1043, Short.MAX_VALUE)
.addComponent(panelGuzikow, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 1043, Short.MAX_VALUE))
.addContainerGap())
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup()
.addContainerGap()
.addComponent(panelGraficzny, GroupLayout.DEFAULT_SIZE, 545, Short.MAX_VALUE)
.addGap(18)
.addComponent(panelGuzikow, GroupLayout.PREFERRED_SIZE, 104, GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
JButton btnLewo = new JButton("LEWO");
btnLewo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panelGraficzny.wLewo();
}
});
btnLewo.setFont(FONT_GUZIKOW);
JButton btnPrawo = new JButton("PRAWO");
btnPrawo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panelGraficzny.wPrawo();
// panelGraficzny.repaint();
}
});
btnPrawo.setFont(FONT_GUZIKOW);
tglbtnSpadaj = new JToggleButton("Spadaj");
tglbtnSpadaj.setFont(FONT_GUZIKOW);
GroupLayout gl_panelGuzikow = new GroupLayout(panelGuzikow);
gl_panelGuzikow.setHorizontalGroup(
gl_panelGuzikow.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panelGuzikow.createSequentialGroup()
.addContainerGap()
.addComponent(btnLewo, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnPrawo, GroupLayout.PREFERRED_SIZE, 124, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(tglbtnSpadaj, GroupLayout.PREFERRED_SIZE, 118, GroupLayout.PREFERRED_SIZE)
.addContainerGap(648, Short.MAX_VALUE))
);
gl_panelGuzikow.setVerticalGroup(
gl_panelGuzikow.createParallelGroup(Alignment.LEADING)
.addGroup(Alignment.TRAILING, gl_panelGuzikow.createSequentialGroup()
.addContainerGap()
.addGroup(gl_panelGuzikow.createParallelGroup(Alignment.TRAILING)
.addComponent(tglbtnSpadaj, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)
.addGroup(Alignment.LEADING, gl_panelGuzikow.createParallelGroup(Alignment.BASELINE)
.addComponent(btnLewo, GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)
.addComponent(btnPrawo, GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)))
.addContainerGap())
);
panelGuzikow.setLayout(gl_panelGuzikow);
frame.getContentPane().setLayout(groupLayout);
}
private static
class PanelGraficzny extends JPanel {
private static final int SREDNICA = 40;
// położenie i kolor "piłki"
private int x, y;
private Color kolor = Color.RED;
private int numer = 0;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
numer++;
g.drawString(""+numer, 100, 100);
g.setColor(kolor);
g.fillOval(x, y, SREDNICA, SREDNICA);
// try {
// BufferedImage img = ImageIO.read(new File("obrazek.jpg"));
// g.drawImage(img, ...)
//
// } catch (IOException e) {
// e.printStackTrace();
// }
}
public void wPrawo() {
x += SREDNICA;
if(x + SREDNICA > this.getWidth()) {
x = this.getWidth() - SREDNICA;
}
repaint();
}
public void wLewo() {
x -= SREDNICA;
if(x < 0) {
x = 0;
}
repaint();
}
public void wDol() {
y += SREDNICA;
if(y + SREDNICA > this.getHeight()) {
y = this.getHeight() - SREDNICA;
}
repaint();
}
public void ustawPolozenie(int x, int y) {
this.x = x - SREDNICA/2;
this.y = y - SREDNICA/2;
repaint();
}
public void zmienKolor() {
int nowyKolor = ThreadLocalRandom.current().nextInt(0x1000000);
this.kolor = new Color(nowyKolor);
this.repaint();
}
}
}
package swing.rysowanie;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Rysowanie {
private JFrame okno;
private PanelRysujacy panel;
public void przygotujIWyswietl() {
przygotujWyglad();
ustawZdarzenia();
dzialaj();
}
private void przygotujWyglad() {
okno = new JFrame("Rysowanie");
okno.setSize(400, 400);
BoxLayout layout = new BoxLayout(okno.getContentPane(), BoxLayout.Y_AXIS);
okno.setLayout(layout);
panel = new PanelRysujacy();
okno.add(panel);
}
private void ustawZdarzenia() {
}
private void dzialaj() {
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setVisible(true);
}
public static void main(String[] args) {
new Rysowanie().przygotujIWyswietl();
}
private static class PanelRysujacy extends JPanel {
private int licznik = 0;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(10, 10, 30, 100);
g.setColor(Color.RED);
g.setFont(new Font("Tahoma", Font.BOLD, 32));
g.drawString("Hello world", 50, 50);
g.setColor(new Color(0xAA2288));
g.fillOval(100, 20, 30, 30);
licznik++;
g.setColor(Color.BLUE);
g.setFont(new Font("Tahoma", Font.BOLD, 24));
g.drawString("Licznik: " + licznik, 200, 300);
}
}
}
package swing.rysowanie;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Rysowanie2D {
private JFrame okno;
private PanelRysujacy panel;
public void przygotujIWyswietl() {
przygotujWyglad();
ustawZdarzenia();
dzialaj();
}
private void przygotujWyglad() {
okno = new JFrame("Rysowanie");
okno.setSize(800, 800);
BoxLayout layout = new BoxLayout(okno.getContentPane(), BoxLayout.Y_AXIS);
okno.setLayout(layout);
panel = new PanelRysujacy();
okno.add(panel);
}
private void ustawZdarzenia() {
}
private void dzialaj() {
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setVisible(true);
}
public static void main(String[] args) {
new Rysowanie2D().przygotujIWyswietl();
}
private static class PanelRysujacy extends JPanel {
private int licznik = 0;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(g instanceof Graphics2D) {
Graphics2D g2 = (Graphics2D)g;
AffineTransform pustyTrans = g2.getTransform();
g2.setColor(Color.PINK);
g2.fillRect(50, 50, 100, 200);
// filtr przez ktory przechodza wszystkie polecenia ponizej
g2.rotate(Math.PI / 4, 200, 200);
g2.setColor(Color.GREEN);
g2.fillRect(50, 50, 100, 200);
g2.setColor(Color.YELLOW);
g2.fill3DRect(300, 200, 50, 50, true);
g2.setTransform(pustyTrans);
g2.setColor(Color.RED);
g2.fillArc(300, 300, 100, 100, 0, 30);
g2.setColor(Color.BLUE);
g2.fillArc(300, 300, 100, 100, 30, 130);
g2.setColor(Color.GREEN);
g2.fillArc(300, 300, 100, 100, 160, 200);
}
}
}
}
\ No newline at end of file
package swing.zdarzenia;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MojListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent evt) {
System.out.println("kliknięto guzik");
}
}
package swing.zdarzenia;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.LayoutManager;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Rozmowa0 {
private static final Font FONT = new Font("Arial", Font.BOLD, 32);
private static final Dimension odstep = new Dimension(0, 10);
public static void main(String[] args) {
JFrame okno = new JFrame("Rozmowa");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
okno.setContentPane(panel); // panel jest wnętrzem okna
// panel.setBorder(BorderFactory.createLineBorder(Color.BLUE, 5));
panel.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
LayoutManager layout = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.setLayout(layout);
JLabel pytanie = new JLabel("Jak masz na imię?");
pytanie.setFont(FONT);
panel.add(pytanie);
panel.add(Box.createRigidArea(odstep));
JTextField pole = new JTextField();
pole.setFont(FONT);
pole.setForeground(Color.MAGENTA);
panel.add(pole);
panel.add(Box.createRigidArea(odstep));
JButton guzik = new JButton("OK");
guzik.setFont(FONT);
guzik.setMaximumSize(new Dimension(Integer.MAX_VALUE, 30));
panel.add(guzik);
panel.add(Box.createRigidArea(odstep));
JLabel powitanie = new JLabel("Witaj");
powitanie.setFont(FONT);
powitanie.setForeground(Color.BLUE);
panel.add(powitanie);
panel.add(Box.createRigidArea(odstep));
JButton guzik2 = new JButton("Niespodzianka");
guzik2.setFont(FONT);
guzik2.setForeground(Color.RED);
guzik2.setMaximumSize(new Dimension(Integer.MAX_VALUE, 30));
panel.add(guzik2);
panel.add(Box.createRigidArea(odstep));
okno.pack();
okno.setVisible(true);
System.out.println("okno wyświetlone, koniec main");
}
}
package swing.zdarzenia;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Rozmowa1 {
private static final Font FONT = new Font("Arial", Font.BOLD, 32);
private static final Dimension odstep = new Dimension(0, 10);
public static void main(String[] args) {
JFrame okno = new JFrame("Rozmowa");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
okno.setContentPane(panel); // panel jest wnętrzem okna
// panel.setBorder(BorderFactory.createLineBorder(Color.BLUE, 5));
panel.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
LayoutManager layout = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.setLayout(layout);
JLabel pytanie = new JLabel("Jak masz na imię?");
pytanie.setFont(FONT);
panel.add(pytanie);
panel.add(Box.createRigidArea(odstep));
JTextField pole = new JTextField();
pole.setFont(FONT);
pole.setForeground(Color.MAGENTA);
panel.add(pole);
panel.add(Box.createRigidArea(odstep));
JButton guzik = new JButton("OK");
guzik.setFont(FONT);
guzik.setMaximumSize(new Dimension(Integer.MAX_VALUE, 30));
panel.add(guzik);
panel.add(Box.createRigidArea(odstep));
JLabel powitanie = new JLabel("Witaj");
powitanie.setFont(FONT);
powitanie.setForeground(Color.BLUE);
panel.add(powitanie);
panel.add(Box.createRigidArea(odstep));
JButton guzik2 = new JButton("Niespodzianka");
guzik2.setFont(FONT);
guzik2.setForeground(Color.RED);
guzik2.setMaximumSize(new Dimension(Integer.MAX_VALUE, 30));
panel.add(guzik2);
panel.add(Box.createRigidArea(odstep));
okno.pack();
// Obsługa zdarzeń
MojListener listener = new MojListener();
guzik.addActionListener(listener);
// W praktyce listenery definiuje się najczęściej bezpośrednio w tej samej klasie, co okno
// jako "klasę anonimową" albo (od Java 8, dla niektórych interfejsów) jako "wyrażenie lambda".
// Dzięki temu w kodzie obsługi zdarzeń możemy odwoływać się do komponentów okna.
// klasa anonimowa
guzik.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String imie = pole.getText();
powitanie.setText("Witaj " + imie);
powitanie.setForeground(Color.BLUE);
}
});
// wyrażenie lambda
pole.addActionListener(evt -> {
String imie = pole.getText();
powitanie.setText("Cześć " + imie);
powitanie.setForeground(Color.GREEN);
});
okno.setVisible(true);
System.out.println("okno wyświetlone, koniec main");
}
}
package swing.zdarzenia;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Rozmowa2 {
private static final Font FONT = new Font("Arial", Font.BOLD, 32);
private static final Dimension odstep = new Dimension(0, 10);
public static void main(String[] args) {
JFrame okno = new JFrame("Rozmowa");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
okno.setContentPane(panel); // panel jest wnętrzem okna
// panel.setBorder(BorderFactory.createLineBorder(Color.BLUE, 5));
panel.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
LayoutManager layout = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.setLayout(layout);
JLabel pytanie = new JLabel("Jak masz na imię?");
pytanie.setFont(FONT);
panel.add(pytanie);
panel.add(Box.createRigidArea(odstep));
JTextField pole = new JTextField();
pole.setFont(FONT);
pole.setForeground(Color.MAGENTA);
panel.add(pole);
panel.add(Box.createRigidArea(odstep));
JButton guzik = new JButton("OK");
guzik.setFont(FONT);
guzik.setMaximumSize(new Dimension(Integer.MAX_VALUE, 30));
panel.add(guzik);
panel.add(Box.createRigidArea(odstep));
JLabel powitanie = new JLabel("Witaj");
powitanie.setFont(FONT);
powitanie.setForeground(Color.BLUE);
panel.add(powitanie);
panel.add(Box.createRigidArea(odstep));
JButton guzik2 = new JButton("Niespodzianka");
guzik2.setFont(FONT);
guzik2.setForeground(Color.RED);
guzik2.setMaximumSize(new Dimension(Integer.MAX_VALUE, 30));
panel.add(guzik2);
panel.add(Box.createRigidArea(odstep));
okno.pack();
// obsługa zdarzeń
// dzięki umieszczeniu listenera w tym samym pliku (klasie), co całe okno, mamy dostęp do komponentów tego okna
// klasa anonimowa
guzik.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String imie = pole.getText();
powitanie.setText("Witaj " + imie);
powitanie.setForeground(Color.BLUE);
}
});
// obsługa naciśnięcia ENTER w polu tekstowym
pole.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String imie = pole.getText();
powitanie.setText("Cześć " + imie);
powitanie.setForeground(Color.GREEN);
}
});
Random random = new Random();
guzik2.addActionListener(evt -> {
okno.getContentPane().setBackground(new Color(random.nextInt(0x1000000)));
int x = okno.getX() + random.nextInt(400) - 200;
int y = okno.getY() + random.nextInt(400) - 200;
okno.setLocation(x, y);
});
// "adapter" to jest taka gotowa implementacja interfejsu,
// która zawiera domyślne (zazwyczaj puste) implementacje wymaganych metod
// nadoisujemy tylko te, które są nam potrzebne
pole.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
if(evt.getButton() == MouseEvent.BUTTON3) {
int co = JOptionPane.showConfirmDialog(okno, "Czy chcesz wykasować?", "Pytanko", JOptionPane.YES_NO_OPTION);
if(co == JOptionPane.YES_OPTION) {
pole.setText("");
powitanie.setText("?");
}
}
}
});
okno.setVisible(true);
System.out.println("okno wyświetlone, koniec main");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment