Java Change JButton Color with Method
I've implemented a JFrame
with 25 JButton
components to represent the available rooms in a hotel. I do know this is not the whole program but how can I create a method in which when pressed the color changes?
The colors for available rooms is green and I would like to change them to red.
java swing methods colors jbutton
add a comment |
I've implemented a JFrame
with 25 JButton
components to represent the available rooms in a hotel. I do know this is not the whole program but how can I create a method in which when pressed the color changes?
The colors for available rooms is green and I would like to change them to red.
java swing methods colors jbutton
You seem to be talking about a JToggleButton
– MadProgrammer
Nov 20 '18 at 0:46
add a comment |
I've implemented a JFrame
with 25 JButton
components to represent the available rooms in a hotel. I do know this is not the whole program but how can I create a method in which when pressed the color changes?
The colors for available rooms is green and I would like to change them to red.
java swing methods colors jbutton
I've implemented a JFrame
with 25 JButton
components to represent the available rooms in a hotel. I do know this is not the whole program but how can I create a method in which when pressed the color changes?
The colors for available rooms is green and I would like to change them to red.
java swing methods colors jbutton
java swing methods colors jbutton
edited Nov 20 '18 at 2:03
Andrew Thompson
153k28162342
153k28162342
asked Nov 20 '18 at 0:33
Oscar RiversOscar Rivers
1
1
You seem to be talking about a JToggleButton
– MadProgrammer
Nov 20 '18 at 0:46
add a comment |
You seem to be talking about a JToggleButton
– MadProgrammer
Nov 20 '18 at 0:46
You seem to be talking about a JToggleButton
– MadProgrammer
Nov 20 '18 at 0:46
You seem to be talking about a JToggleButton
– MadProgrammer
Nov 20 '18 at 0:46
add a comment |
2 Answers
2
active
oldest
votes
This code uses a JToggleButton
with different colored icons for standard & selected states. A JCheckBox
might also be used.
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.net.*;
import java.util.*;
public class RoomReservationToggle {
private JComponent ui = null;
private String reservedPath = "https://i.stack.imgur.com/xj49g.png";
private String freePath = "https://i.stack.imgur.com/zJ8am.png";
RoomReservationToggle() {
try {
initUI();
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
public void initUI() throws MalformedURLException {
if (ui != null) {
return;
}
ui = new JPanel(new GridLayout(0, 4, 4, 4));
ui.setBorder(new EmptyBorder(4, 4, 4, 4));
ImageIcon reservedIcon = new ImageIcon(new URL(reservedPath));
ImageIcon freeIcon = new ImageIcon(new URL(freePath));
Random r = new Random();
for (int ii = 1; ii < 17; ii++) {
// a JCheckBox might also be used
JToggleButton tb = new JToggleButton(freeIcon, r.nextBoolean());
tb.setSelectedIcon(reservedIcon);
ui.add(tb);
}
}
public JComponent getUI() {
return ui;
}
public static void main(String args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
RoomReservationToggle o = new RoomReservationToggle();
JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);
f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}
add a comment |
You can use the methods setForeground()
and setBackground()
to change colours.
Make sure you call these methods from the event thread/queue.
Your configured L&F can ignore these however. Sometimes calling setOpaque(true)
might help in those cases.
The problem with buttons is, they don't always honour the background color property, at least not in away you might expect
– MadProgrammer
Nov 20 '18 at 1:55
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53384581%2fjava-change-jbutton-color-with-method%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
This code uses a JToggleButton
with different colored icons for standard & selected states. A JCheckBox
might also be used.
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.net.*;
import java.util.*;
public class RoomReservationToggle {
private JComponent ui = null;
private String reservedPath = "https://i.stack.imgur.com/xj49g.png";
private String freePath = "https://i.stack.imgur.com/zJ8am.png";
RoomReservationToggle() {
try {
initUI();
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
public void initUI() throws MalformedURLException {
if (ui != null) {
return;
}
ui = new JPanel(new GridLayout(0, 4, 4, 4));
ui.setBorder(new EmptyBorder(4, 4, 4, 4));
ImageIcon reservedIcon = new ImageIcon(new URL(reservedPath));
ImageIcon freeIcon = new ImageIcon(new URL(freePath));
Random r = new Random();
for (int ii = 1; ii < 17; ii++) {
// a JCheckBox might also be used
JToggleButton tb = new JToggleButton(freeIcon, r.nextBoolean());
tb.setSelectedIcon(reservedIcon);
ui.add(tb);
}
}
public JComponent getUI() {
return ui;
}
public static void main(String args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
RoomReservationToggle o = new RoomReservationToggle();
JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);
f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}
add a comment |
This code uses a JToggleButton
with different colored icons for standard & selected states. A JCheckBox
might also be used.
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.net.*;
import java.util.*;
public class RoomReservationToggle {
private JComponent ui = null;
private String reservedPath = "https://i.stack.imgur.com/xj49g.png";
private String freePath = "https://i.stack.imgur.com/zJ8am.png";
RoomReservationToggle() {
try {
initUI();
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
public void initUI() throws MalformedURLException {
if (ui != null) {
return;
}
ui = new JPanel(new GridLayout(0, 4, 4, 4));
ui.setBorder(new EmptyBorder(4, 4, 4, 4));
ImageIcon reservedIcon = new ImageIcon(new URL(reservedPath));
ImageIcon freeIcon = new ImageIcon(new URL(freePath));
Random r = new Random();
for (int ii = 1; ii < 17; ii++) {
// a JCheckBox might also be used
JToggleButton tb = new JToggleButton(freeIcon, r.nextBoolean());
tb.setSelectedIcon(reservedIcon);
ui.add(tb);
}
}
public JComponent getUI() {
return ui;
}
public static void main(String args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
RoomReservationToggle o = new RoomReservationToggle();
JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);
f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}
add a comment |
This code uses a JToggleButton
with different colored icons for standard & selected states. A JCheckBox
might also be used.
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.net.*;
import java.util.*;
public class RoomReservationToggle {
private JComponent ui = null;
private String reservedPath = "https://i.stack.imgur.com/xj49g.png";
private String freePath = "https://i.stack.imgur.com/zJ8am.png";
RoomReservationToggle() {
try {
initUI();
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
public void initUI() throws MalformedURLException {
if (ui != null) {
return;
}
ui = new JPanel(new GridLayout(0, 4, 4, 4));
ui.setBorder(new EmptyBorder(4, 4, 4, 4));
ImageIcon reservedIcon = new ImageIcon(new URL(reservedPath));
ImageIcon freeIcon = new ImageIcon(new URL(freePath));
Random r = new Random();
for (int ii = 1; ii < 17; ii++) {
// a JCheckBox might also be used
JToggleButton tb = new JToggleButton(freeIcon, r.nextBoolean());
tb.setSelectedIcon(reservedIcon);
ui.add(tb);
}
}
public JComponent getUI() {
return ui;
}
public static void main(String args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
RoomReservationToggle o = new RoomReservationToggle();
JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);
f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}
This code uses a JToggleButton
with different colored icons for standard & selected states. A JCheckBox
might also be used.
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.net.*;
import java.util.*;
public class RoomReservationToggle {
private JComponent ui = null;
private String reservedPath = "https://i.stack.imgur.com/xj49g.png";
private String freePath = "https://i.stack.imgur.com/zJ8am.png";
RoomReservationToggle() {
try {
initUI();
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
public void initUI() throws MalformedURLException {
if (ui != null) {
return;
}
ui = new JPanel(new GridLayout(0, 4, 4, 4));
ui.setBorder(new EmptyBorder(4, 4, 4, 4));
ImageIcon reservedIcon = new ImageIcon(new URL(reservedPath));
ImageIcon freeIcon = new ImageIcon(new URL(freePath));
Random r = new Random();
for (int ii = 1; ii < 17; ii++) {
// a JCheckBox might also be used
JToggleButton tb = new JToggleButton(freeIcon, r.nextBoolean());
tb.setSelectedIcon(reservedIcon);
ui.add(tb);
}
}
public JComponent getUI() {
return ui;
}
public static void main(String args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
RoomReservationToggle o = new RoomReservationToggle();
JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);
f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}
answered Nov 20 '18 at 1:33
Andrew ThompsonAndrew Thompson
153k28162342
153k28162342
add a comment |
add a comment |
You can use the methods setForeground()
and setBackground()
to change colours.
Make sure you call these methods from the event thread/queue.
Your configured L&F can ignore these however. Sometimes calling setOpaque(true)
might help in those cases.
The problem with buttons is, they don't always honour the background color property, at least not in away you might expect
– MadProgrammer
Nov 20 '18 at 1:55
add a comment |
You can use the methods setForeground()
and setBackground()
to change colours.
Make sure you call these methods from the event thread/queue.
Your configured L&F can ignore these however. Sometimes calling setOpaque(true)
might help in those cases.
The problem with buttons is, they don't always honour the background color property, at least not in away you might expect
– MadProgrammer
Nov 20 '18 at 1:55
add a comment |
You can use the methods setForeground()
and setBackground()
to change colours.
Make sure you call these methods from the event thread/queue.
Your configured L&F can ignore these however. Sometimes calling setOpaque(true)
might help in those cases.
You can use the methods setForeground()
and setBackground()
to change colours.
Make sure you call these methods from the event thread/queue.
Your configured L&F can ignore these however. Sometimes calling setOpaque(true)
might help in those cases.
answered Nov 20 '18 at 1:12
CarstenCarsten
1,90122340
1,90122340
The problem with buttons is, they don't always honour the background color property, at least not in away you might expect
– MadProgrammer
Nov 20 '18 at 1:55
add a comment |
The problem with buttons is, they don't always honour the background color property, at least not in away you might expect
– MadProgrammer
Nov 20 '18 at 1:55
The problem with buttons is, they don't always honour the background color property, at least not in away you might expect
– MadProgrammer
Nov 20 '18 at 1:55
The problem with buttons is, they don't always honour the background color property, at least not in away you might expect
– MadProgrammer
Nov 20 '18 at 1:55
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53384581%2fjava-change-jbutton-color-with-method%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You seem to be talking about a JToggleButton
– MadProgrammer
Nov 20 '18 at 0:46